NUnit 运行 类 并行
NUnit running classes in parallel
我对 nunit 的 Parallel 属性有点困惑:
假设我有 3 个 类,每个都有一些测试:
ClassA
- Test1
- Test2
- Test3
ClassB
- Test1
ClassC
- Test1
- Test2
我想 运行 ClassA 和 ClassB 中的每个测试并行进行(我不关心顺序)
我也想 运行 ClassC 而 ClassA 和 ClassB 是 运行ning,但是在这个 class 我想保持我指定测试的顺序
所以我的问题是我应该如何设置属性以获得这样的行为?
我查了文档https://github.com/nunit/docs/wiki/Framework-Parallel-Test-Execution但我还是很困惑
从简单开始...
如果您不对 ParallelizableAttribute
执行任何操作,那么 运行 将不会并行执行。 :-)
如果给每个fixture加上Parallelizable
,那么三个fixture会运行并行,但是单独的测试不会。也就是说,一次最多可以 运行ning 三件事,每个 class.
一件。
如果在汇编级加上[Parallelizable(ParallelScope.Fixtures)]
,效果和(2)一样。仅当 几乎所有 的灯具将成功并行 运行 时才应执行此操作,在这种情况下,您会将不能成功的灯具标记为 [NonParallelizable]
。我在帮助人们方面的经验是,太多的人在这样做时没有意识到他们的测试可能并不总是 运行 正确并行,如果不是这样写的话。首先,默认为非平行是最安全的,并且只在适合您时添加它。
从 (2) 开始,将 A 和 B 上的属性更改为 [Parallelizable(ParallelScope.All)]
或
[Parallelizable(ParallelScope.Self + ParallelScope.Children)
。我喜欢较长的形式,因为读者更清楚它的作用。这将完全达到您想要的效果。
还有一点要注意:您可能应该确保指定测试顺序的任何固定装置不会 运行 并行。 NUnit 让您可以无误地指定并行和顺序。在那种情况下,它只是按照您给出的顺序 开始 测试,但这可能不是您想要的。
4.
我对 nunit 的 Parallel 属性有点困惑:
假设我有 3 个 类,每个都有一些测试:
ClassA
- Test1
- Test2
- Test3
ClassB
- Test1
ClassC
- Test1
- Test2
我想 运行 ClassA 和 ClassB 中的每个测试并行进行(我不关心顺序)
我也想 运行 ClassC 而 ClassA 和 ClassB 是 运行ning,但是在这个 class 我想保持我指定测试的顺序
所以我的问题是我应该如何设置属性以获得这样的行为?
我查了文档https://github.com/nunit/docs/wiki/Framework-Parallel-Test-Execution但我还是很困惑
从简单开始...
如果您不对
ParallelizableAttribute
执行任何操作,那么 运行 将不会并行执行。 :-)如果给每个fixture加上
Parallelizable
,那么三个fixture会运行并行,但是单独的测试不会。也就是说,一次最多可以 运行ning 三件事,每个 class. 一件。
如果在汇编级加上
[Parallelizable(ParallelScope.Fixtures)]
,效果和(2)一样。仅当 几乎所有 的灯具将成功并行 运行 时才应执行此操作,在这种情况下,您会将不能成功的灯具标记为[NonParallelizable]
。我在帮助人们方面的经验是,太多的人在这样做时没有意识到他们的测试可能并不总是 运行 正确并行,如果不是这样写的话。首先,默认为非平行是最安全的,并且只在适合您时添加它。从 (2) 开始,将 A 和 B 上的属性更改为
[Parallelizable(ParallelScope.All)]
或[Parallelizable(ParallelScope.Self + ParallelScope.Children)
。我喜欢较长的形式,因为读者更清楚它的作用。这将完全达到您想要的效果。
还有一点要注意:您可能应该确保指定测试顺序的任何固定装置不会 运行 并行。 NUnit 让您可以无误地指定并行和顺序。在那种情况下,它只是按照您给出的顺序 开始 测试,但这可能不是您想要的。 4.