【问题标题】:MbUnit Parallelizable testsMbUnit 可并行化测试
【发布时间】:2009-11-05 12:46:20
【问题描述】:

我正在考虑将我的单元测试框架从 NUnit 迁移到 MbUnit,因为它有几个我喜欢的特性,其中之一是可并行化属性。如果我用这个属性标记测试会发生什么

i,所有实例变量是否仅对它们自己的线程可用,或者它们是共享的? ii,一次将执行多少个测试?是否取决于处理器/内核的数量?

问第一个问题的原因是,作为一个测试,我只是将 Nunit 框架换成了 MbUnit 框架,并且在特定的测试类中,并行运行时,测试集往往会失败,而在顺序运行时会通过。这些测试在类级别使用变量,然后在 [SetUp] 中设置。

【问题讨论】:

  • 我对“这些测试在类级别使用变量,然后在 [SetUp] 中设置”的说法感到困惑。为什么要在 Test 类中声明类级别的变量?我不认为,这就是你应该编写测试的方式(即使你使用的是 NUnit)。
  • 当您的测试有共同的设置代码时,这将消除重复。不过,有些人会说在每个测试开始时添加一个方法调用会更清晰。

标签: c# .net unit-testing


【解决方案1】:

测试在测试夹具类的单个实例上运行,因此实例字段将被共享。

默认情况下,并行度等于您拥有的 CPU 数量,或者至少为 2。 您可以在程序集级别使用DegreeOfParallelism 属性来覆盖它。

请参阅this blog post 了解详细信息和一些向您展示如何使用各种属性的示例。

【讨论】:

    猜你喜欢
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 2014-12-04
    • 1970-01-01
    相关资源
    最近更新 更多