C# MbUnit可并行测试

C# MbUnit可并行测试,c#,.net,unit-testing,C#,.net,Unit Testing,我正在考虑为我的单元测试框架从NUnit迁移到MbUnit,因为它有两个我喜欢的特性,其中一个是可并行化属性。如果我用这个属性标记测试,会发生什么 i、 所有实例变量是否仅对其自己的线程可用,还是共享? ii,一次将执行多少个测试?它是否取决于处理器/内核的数量 问第一个问题的原因是,作为一个测试,我简单地将Nunit框架替换为th MbUnit框架,并且在一个特定的测试类中,测试集在并行运行时往往会失败,而在顺序运行时则会通过。这些测试在类级别使用变量,然后在[setup]中进行设置。测试在测

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

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


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

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

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


有关如何使用各种属性的详细信息和一些示例,请参见。

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