Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NUnit并行运行类_Nunit_Nunit 3.0 - Fatal编程技术网

NUnit并行运行类

NUnit并行运行类,nunit,nunit-3.0,Nunit,Nunit 3.0,我对nunit的平行属性有点困惑: 假设我有3个班,每个班都有一些测试: ClassA - Test1 - Test2 - Test3 ClassB - Test1 ClassC - Test1 - Test2 我想并行运行ClassA和ClassB中的每个测试(我不关心顺序) 我还希望在ClassA和ClassB运行时运行ClassC,但在这个类中,我希望保持指定测试的顺序 所以我的问题是,我应该如何设置属性来获得这样的行为 我查看了文档,但我

我对nunit的平行属性有点困惑:

假设我有3个班,每个班都有一些测试:

ClassA
    - Test1
    - Test2
    - Test3
ClassB
    - Test1
ClassC
    - Test1
    - Test2
我想并行运行ClassA和ClassB中的每个测试(我不关心顺序)

我还希望在ClassA和ClassB运行时运行ClassC,但在这个类中,我希望保持指定测试的顺序

所以我的问题是,我应该如何设置属性来获得这样的行为

我查看了文档,但我还是很困惑

开始简单

  • 如果您不使用
    ParallelizableAttribute
    执行任何操作,则任何操作都不会并行运行。:-)

  • 如果将
    Parallelizable
    添加到每个fixture,那么这三个fixture将并行运行,但单独的测试不会。也就是说,一次最多可以运行三个东西,每个类一个

  • 如果在程序集级别添加
    [Parallelizable(ParallelScope.Fixtures)]
    ,效果与(2)相同。只有当几乎所有的装置都能成功并行运行时,您才应该这样做,在这种情况下,您会将不能并行的装置标记为
    [不可并行]
    。我在帮助人们方面的经验是,太多的人在这样做的时候没有意识到他们的测试在并行运行时可能并不总是正确的。开始时,最安全的做法是默认为非并行,并且只在适合您的情况下添加它

  • 从(2)开始,将A和B上的属性更改为
    [Parallelizable(ParallelScope.All)]
    [Parallelizable(ParallelScope.Self+ParallelScope.Children)
    。我喜欢较长的形式,因为读者更清楚它的作用。这将完全达到您想要的效果

  • 还有一个注意事项:您可能应该确保指定测试顺序的任何固定装置都不会并行运行。NUnit让您指定并行和顺序,而不会出错。在这种情况下,它只是按照您给出的顺序启动测试,但这可能不是您想要的。 四,