每个测试程序集的 VSTest 任务并行化

问题描述

我有一个场景,我有多个测试程序集:TestAssembly1.dll、TestAssembly2.dll、TestAssembly3.dll、... 这些程序集中的每一个都包含多个测试,但在一个程序集中,测试必须顺序执行,因为每个程序集都有唯一的外部依赖性。

是否可以使用 VSTest 任务在 DevOps Server 2020 上的程序集级别并行运行每个程序集?。此任务使用 vstest.console.exe,它可以选择启用并行性,但据我所知,这会并行执行每个测试,而不是在程序集级别。

为了编写测试,我们使用 NUnit 3。

解决方法

每个测试程序集的 VSTest 任务并行化

您可以通过在 AssemblyInfo.cs 文件中添加以下行来尝试在 NUnit 的程序集级别激活并行功能:

[assembly: Parallelizable(ParallelScope.Fixtures)]

上面这行代码将使所有夹具类并行运行。

有关更多详细信息,请参阅此文档 Specifying Parallelism at Multiple Test Levels