如何在Xunit中按顺序执行Theory测试用例?
问题原因及解决方案
为什么测试案例执行无序?
xUnit.net 默认启用了测试并行化,目的是提升测试执行效率。对于[Theory]标记的数据驱动测试,框架会并行调度各个测试案例,不会严格遵循ClassData返回的序列顺序执行——这就是你看到试验乱序的根本原因。你的Trials类确实按1到10的顺序生成了测试数据,但并行执行机制打乱了实际运行顺序。
解决方法:禁用测试并行化
要让测试案例按顺序执行,需要关闭xUnit的并行执行功能,具体步骤如下:
- 在测试项目根目录创建
xunit.runner.json文件,写入以下配置:
{ "parallelizeTestCollections": false, "parallelizeAssembly": false }
- 在Visual Studio中,右键该文件 → 属性 → 将“复制到输出目录”设置为如果较新则复制,确保测试运行时能读取到配置文件。
关闭并行后,xUnit会严格按照ClassData返回的序列顺序执行每个测试案例,你就能看到试验1到试验10依次运行了。
内容的提问来源于stack exchange,提问作者William Jockusch
相关产品推荐
相关产品推荐

