【发布时间】:2021-12-28 14:36:36
【问题描述】:
正如标题所说,我想使用TestCase 和TestCaseSource/ValueSource 的组合。
这是一个例子:
public static string[] Source1 = new string[]
{
"One", "Two", "Three"
};
public static string[] Source2 = new string[]
{
"Four", "Five", "Six"
};
[TestCase("A"), TestCaseSource(nameof(Source1))]
[TestCase("B"), TestCaseSource(nameof(Source2))]
[TestCase("C"), TestCaseSource(nameof(Source1))]
[TestCase("C"), TestCaseSource(nameof(Source2))]
public void MyTest(string x, string y)
{
// ...
}
这当然行不通,但我想做的是:
- 针对 Source1 运行测试用例 A
- 针对 Source2 运行测试用例 B
- 针对 Source1 和 Source2 运行测试用例 C
有没有可能实现这样的目标?
【问题讨论】:
-
TestCaseSource可以引用一个方法。该方法当然可以返回您需要的所有组合。文档中有一堆示例:docs.nunit.org/articles/nunit/writing-tests/attributes/… -
是的,当然,但是这个解决方案会在我的
TestCaseSource方法中创建很多重复记录,我必须记住,当我想在 Source 中添加新参数时,我必须将其添加到每个TestCase。我正在努力避免这些问题。
标签: c# unit-testing nunit