【问题标题】:Conditionally ignore nunit testcase有条件地忽略 nunit 测试用例
【发布时间】:2015-03-12 16:11:15
【问题描述】:

W.r.t.单元; 是否有有条件地忽略特定测试用例的机制?

以下内容:

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

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

【问题讨论】:

  • 您是否尝试过使用 Assert.Ignore()? nunit.org/index.php?p=utilityAsserts&r=2.5.2
  • 谢谢,用 Assert.Ignore 更新了问题,尽管我认为这意味着我们仍然为每个案例创建单独的测试(复制测试主体)?

标签: unit-testing testing nunit


【解决方案1】:

您可以在测试正文中添加以下内容:

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

您必须对每个您想忽略的测试用例执行此操作。 在这种情况下,您不会复制测试主体,但您会为每个被忽略的测试用例添加它。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-13
      • 2015-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-21
      • 1970-01-01
      相关资源
      最近更新 更多