【问题标题】:NUnit running classes in parallelNUnit 并行运行类
【发布时间】:2018-11-21 02:17:37
【问题描述】:

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

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

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

我想在 ClassA 和 ClassB 中并行运行 Every Test(我不关心顺序)

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

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

我检查了文档https://github.com/nunit/docs/wiki/Framework-Parallel-Test-Execution,但我仍然感到困惑

【问题讨论】:

    标签: nunit nunit-3.0


    【解决方案1】:

    从简单的开始...

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

    2. 如果将Parallelizable 添加到每个夹具,则三个夹具将并行运行,但单独的测试不会。也就是说,一次最多可以运行三件事情,每个班级一件。

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

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

    还有一点需要注意:您可能应该确保您指定测试顺序的任何夹具都不会并行运行。 NUnit 让您指定并行和顺序而不会出错。在这种情况下,它只是按照您给出的顺序开始测试,但这可能不是您想要的。 4.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-22
      相关资源
      最近更新 更多