有条件地忽略nunit testcase

时间:2015-03-12 16:11:15

标签: unit-testing testing nunit

W.r.t。 NUnit的; 是否存在有条件地忽略特定测试用例的机制?

以下内容:

[TestCase(1,2)]
[TestCase(3,4, Ignore=true, IgnoreReason="Doesn't meet conditionA", Condition=IsConditionA())]
public voidTestA(int a, int b)

那么有没有这样的机制或唯一的方法是为每个案例创建单独的测试并在测试体中做Assert.Ignore?

2 个答案:

答案 0 :(得分:5)

您可以将以下内容添加到测试主体中:

if (a==3 && b == 4 && !IsConditionA()) { Assert.Ignore() }

这对于您想要忽略的每个测试用例都必须这样做。 在这种情况下,您不会复制测试对象,但是您将为每个被忽略的测试用例添加它。

答案 1 :(得分:0)

我认为它有助于测试可读性,以最小化测试体内的条件逻辑。但是,您可以使用测试中的testcasesource属性动态生成测试用例,并在单独的方法中动态生成要使用nunit testcasedata对象运行的测试用例列表。

因此,只运行您需要/有效执行的测试,但您仍有机会记录等情况。

http://www.nunit.org/index.php?p=testCaseSource&r=2.6.4