如何通过命令行指定dotnet test的XUnit并行线程数
解决方案
你当前使用的Xunit 2.4.1、Xunit.runner.visualstudio 2.4.5版本(目标框架netcoreapp3.1)原生支持两种灵活配置并行线程数的方式,无需将参数固定写在默认xunit.runner.json中。
方式1:命令行直接指定并行线程数
执行dotnet test时,通过分隔符--向xunit运行器传入maxParallelThreads参数即可直接指定并行线程数,不需要额外准备配置文件:
- 适配6线程承载能力的节点执行命令:
dotnet test -- xunit.maxParallelThreads=6 - 适配10线程承载能力的节点执行命令:
dotnet test -- xunit.maxParallelThreads=10
如果希望自动匹配当前节点的CPU逻辑核数,可将参数值设为-1:dotnet test -- xunit.maxParallelThreads=-1
注意:命令中的
--是dotnet CLI和测试运行器的参数分隔符,不能省略,否则后续参数会被识别为dotnet test本身的参数,无法传递给xunit生效。
方式2:命令行指定自定义配置文件
如果不同节点除了并行线程数外,还有其他差异化测试配置需要调整,可以提前为不同规格的节点准备独立的xunit配置文件,执行时通过参数指定加载的配置文件路径即可:
- 提前准备对应配置:比如为6线程节点创建
xunit.runner.6t.json,配置maxParallelThreads为6;为10线程节点创建xunit.runner.10t.json,配置maxParallelThreads为10 - 执行测试时传入配置文件路径参数:
- 6线程节点执行命令:
dotnet test -- xunit.configFile=./config/xunit.runner.6t.json - 10线程节点执行命令:
dotnet test -- xunit.configFile=./config/xunit.runner.10t.json
- 6线程节点执行命令:
指定自定义配置文件后,xunit会完全加载目标配置文件的内容,不再读取默认路径下的xunit.runner.json。
内容的提问来源于stack exchange,提问作者Kiril Runets
相关产品推荐
相关产品推荐

