2009-11-05 65 views
3

我正在寻找从NUnit移动到MbUnit的单元测试框架,因为它有一些我喜欢的功能,其中之一是可并行化的属性。如果我用这个属性标记测试会发生什么MbUnit并行化测试

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

提出第一个问题的原因是,作为一个测试,简单地交换了MbUnit框架的Nunit框架,并且在特定的测试类中,测试集在并行运行时趋于失败,并在按顺序运行时失败。这些测试在课程级别使用变量,然后在[设置]中进行设置。

+0

我感到困惑的声明“这些测试在课堂上使用变量,然后在[设置]中设置”。为什么要在Test类的类级声明一个变量?我不认为,这就是你应该如何编写测试(即使你使用的是NUnit)。 – shahkalpesh 2009-11-05 14:03:43

+0

当您的测试有共同的设置代码时,这将消除重复。但有人会说,在每次测试开始时添加一个方法调用就会变得更加清晰。 – GraemeF 2009-11-13 07:10:13

回答

1

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

默认情况下,并行度等于您拥有的CPU数量,或最少为2。 您可以在装配级使用DegreeOfParallelism属性来覆盖此属性。

查看this blog post了解详细信息和一些示例,向您展示如何使用各种属性。