Nunit:ParallelScope Self+Children、Fixture+Children 和 All 的区别

Nunit: Difference between ParallelScope Self+Children, Fixture+Children and All

有人可以告诉我在应用于基本 TestFixture 时应用的 ParallelScope 的不同组合之间的区别(几个测试程序集中的所有 TestFixtures 都派生自它):

[TestFixture, Parallelizable(ParallelScope.All)]

[TestFixture, Parallelizable(ParallelScope.Fixtures | ParallelScope.Children)]

[TestFixture, Parallelizable(ParallelScope.Self | ParallelScope.Children)]

Nunit documentation 也没有提供任何清晰度。此外,NUnit 文档中也没有提及 ParallelScope.All

我想 运行 我的所有测试用例并行地跨所有测试程序集。 使用其中之一可以吗?有什么不同吗?使用一个比另一个有什么优势?

NUnit ParallelizableAttribute 仅适用于单个程序集。那是因为它构成了 NUnit 框架的一部分,运行s 在单个测试程序集中进行测试。

各种 运行ner 可用于 运行 在多个程序集中进行测试。由 运行 人员按顺序或并行进行各个组装测试。

举个例子,NUnit Console 运行ner, nunit3-console.exe 运行s 多个程序集默认并行。如有必要,您可以使用 --agents 选项来限制同时 运行 程序集的数量。

当 运行 并行运行多个测试程序集时,每个程序集通过 Parallelizable 属性控制各个测试的并行化方式。

检查 NUnit Source Code 似乎 AllSelf | Children 相同,而 Fixtures | Children 实际上与 Self | Children 和 [=10 相同=].

基本上:

  • Self 并行化当前级别
    1. TestFixture吗?然后它将 运行 与其他并行 TextFixtures
    2. 并行
    3. TestMethod吗?然后它将 运行 与其他并行 TextMethods
    4. 并行
  • Children 将 运行 所有 children 无论它们是 TestFixture 还是 TestMethod 但不包括 Self
  • Fixtures 将 运行 这本身和所有下降 TestFixture 类 并行