You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NUnit中如何让指定测试夹具并行执行,其余串行?

解决NUnit仅指定测试类并行执行的问题

当前问题分析

你在AssemblyInfo.cs中设置了全局并行配置:

using NUnit.Framework;
[assembly: Parallelizable(ParallelScope.Fixtures)]
[assembly: LevelOfParallelism(3)]

该配置会让所有测试类默认启用并行执行,即便你为其余50个类添加[NonParallelizable],在NUnit 3.13.3版本中可能存在优先级覆盖问题,导致标记不生效。

解决方案步骤

1. 移除全局并行默认配置

修改AssemblyInfo.cs,删除[assembly: Parallelizable(ParallelScope.Fixtures)],保留并行度设置:

using NUnit.Framework;
[assembly: LevelOfParallelism(3)]

此时NUnit默认所有测试类串行执行,仅对显式标记[Parallelizable]的类启用并行。

2. 为需要并行的测试类添加标记

在那5个需要并行的测试类上添加[Parallelizable(ParallelScope.Fixtures)]:

[Parallelizable(ParallelScope.Fixtures)]
public class ParallelTestClass1
{
    // 测试方法
}

3. 验证其余类的串行执行

其余未标记[Parallelizable]的测试类会自动以串行方式执行,无需额外添加[NonParallelizable]。如果仍有问题,可显式为这些类添加[NonParallelizable]确保生效:

[NonParallelizable]
public class SerialTestClass1
{
    // 测试方法
}

额外说明

  • 确保[NonParallelizable]标记在测试类上,而非单个测试方法,否则类仍会参与并行执行,仅方法内部串行。
  • NUnit 3.13.3版本中,全局并行配置优先级较高,移除全局默认并行是最可靠的解决方式,避免配置冲突。

内容的提问来源于stack exchange,提问作者Leo Danny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 20:35:00