gpt4 book ai didi

NUnit 并行运行类

转载 作者:行者123 更新时间:2023-12-04 01:50:20 26 4
gpt4 key购买 nike

我对 nunit 的 Parallel 属性有点困惑:

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

ClassA
- Test1
- Test2
- Test3
ClassB
- Test1
ClassC
- Test1
- Test2

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

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

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

我检查了文档 https://github.com/nunit/docs/wiki/Framework-Parallel-Test-Execution但我还是很困惑

最佳答案

从简单开始......

  1. 如果您不对 ParallelizableAttribute 执行任何操作,则不会并行运行任何内容。 :-)

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

  3. 如果在汇编级添加[Parallelizable(ParallelScope.Fixtures)],效果与(2)相同。仅当几乎所有 的固定装置将成功并行运行时才应执行此操作,在这种情况下,您会将不能并行运行的固定装置标记为[NonParallelizable]。我在帮助人们方面的经验是,太多的人在这样做时没有意识到他们的测试在没有编写时可能并不总是正确地并行运行。一开始,最安全的做法是默认为非平行,并且只在适合您的情况下才添加它。

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

还有一点要注意:您可能应该确保指定测试顺序的任何固定装置都不会并行运行。 NUnit 让您可以无误地指定并行和顺序。在这种情况下,它只是按照您指定的顺序开始测试,但这可能不是您想要的。4.

关于NUnit 并行运行类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53392977/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com