我想知道是否可以并行运行 NUnit 测试,我正在使用 R# 测试运行程序,并且可以选择并行运行程序集。
我有一个包含所有测试的测试项目,它们全部“分组”并按
namespace
排序。是否有能力能够在命名空间中并行运行测试?
我所说的“分组”的示例
我会使用 NUnit 控制台,它为您提供一些命令行选项,通过指定
TestFixtures
来运行测试
nunit /fixture:NUnit.Tests.AssertionTests nunit.tests.dll
仅加载 nunit.tests.dll 程序集中的 NUnit.Tests.AssertionTests。 /fixture 选项后指定的名称可能是
TestFixture
class
或 namespace
我从未亲自测试过使用命令行并行执行,但理论上是可以做到的
参见这个
Nunit 有自己的并行测试执行方式:
使用属性Paralellizable,它可以在程序集、类或方法级别使用。所以不幸的是不在命名空间级别。
只需在程序集中有一个类,例如 GlobalSetup.cs:
using NUnit.Framework;
[assembly: Parallelizable(ParallelScope.All)]
[assembly: LevelOfParallelism(1)]
在
.runsettings
文件中,可以覆盖工人数量:
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<NUnit>
<NumberOfTestWorkers>5</NumberOfTestWorkers>
</NUnit>
</RunSettings>