【问题标题】:In xUnit.net, is it possible to run tests in order?在 xUnit.net 中,是否可以按顺序运行测试?
【发布时间】:2010-11-18 00:22:04
【问题描述】:

我知道你通常不应该依赖于你的单元测试的顺序,但是在 xunit 中是否可以让你的测试以特定的顺序运行?

【问题讨论】:

标签: unit-testing testing xunit.net xunit


【解决方案1】:

在我们的 Samples 项目中有一个名为 PrioritizedFixtureSample 的示例,它允许您控制测试的顺序。

查看我们最新版本中的示例:https://xunit.net/#releases

【讨论】:

  • 简而言之,[Fact] 方法属性的第二个参数称为TestPriority,它本身采用一个表示测试顺序的整数(有符号)。展览 A:[Fact, TestPriority(5)]。以防万一您不想下载和加载示例项目...
  • Fact 似乎没有 TestPriority 属性了。
  • 我不认为它曾经在 xUnit 本身中,查看 Brad 提到的示例,属性的代码在那里。
  • 我还创建了一个按字母顺序执行模块的版本。并且也使用 PriorityFixtures。因此,您可以确定确切的顺序 - 如果需要。 (通过命名的类顺序,如 TestCase01、TestCase02、...)andreas-reiff.de/2012/06/…,对于类似的问题和类似的答案,请查看 stackoverflow.com/questions/9210281/…
  • [TestPriority] 不是 xUnit 的一部分。有关实现示例,请参阅@AndreasReiff 提供的链接。
【解决方案2】:

不,我不这么认为,但是根据定义,单元测试应该是独立的,所以顺序不应该很重要。如果您确实具有无法分离的自然依赖关系,我建议您将测试组合成一个具有多个断言的单元。

【讨论】:

    【解决方案3】:

    xUnit.net 不提供订购测试的方法。

    但是,其他一些框架可以。例如,在 mbUnit 中,您可以将 Order 属性附加到您的测试属性。许多 TDD 纯粹主义者认为这是滥用,任何需要排序的测试都应该合并到单独的单元测试中,但许多人发现在某些情况下能够对测试进行排序很有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-26
      • 2017-08-13
      • 2020-07-30
      • 1970-01-01
      • 1970-01-01
      • 2017-09-06
      • 1970-01-01
      相关资源
      最近更新 更多