如何使用 TestCaseSource 从 Excel 加载特定测试用例

问题描述 投票:0回答:1

在 Excel 工作表中,我们有 100 个测试用例,我们希望使用 TestCaseSource 从测试用例列表中加载特定的测试用例

我尝试加载测试用例,如下所示

TestCaseSource.LoadTestCases(excelName, sheetName).FirstOrDefault(x => x.TestCaseName == TestCaseName)

它仅加载第一个测试用例或默认测试用例。但我想从工作表的任意行加载单个测试用例

c# nunit xunit
1个回答
0
投票

TestCaseSource 应根据您的参数生成 100 个测试用例。

class TestSuite
{

[TestCaseSource("LoadTestCases")]
public void GenerateTestCases(ExcelData data){
//logic
}

private static IEnumerable<TestCaseData> LoadTestCases()
{
  var rows = //logic for mapping excel rows for some model

  foreach(var row in rows)
     yield return new TestCaseData(row).SetTestName(row.Name);
}

如果您只想从 TestCaseSource 获取单个测试用例,您可以在 appsettings 中存储 excelName 和sheetName 等参数,并且从 CI 中您将能够更改参数值,并且在构建过程中将出现您的单个测试用例。

我不推荐这种方法。只需根据源“excel”生成 100 个或更多测试用例,如果您只想执行单个测试,只需使用过滤器进行测试执行,例如: dotnet test --filter Name=YourTestCaseNameFromExcel

© www.soinside.com 2019 - 2024. All rights reserved.