dotnet 测试 - 测试项目未编译时退出代码 0

dotnet test - exit code 0 when test project doesn't compile

我正在使用 TeamCity 构建我的 .NET Core 项目,并使用 xunit dotnet test 进行 运行 测试。

如果任何测试失败,我的构建被配置为失败,如果测试失败,这工作正常,但当测试项目不编译时,退出代码最终为零。

我相信这是因为我 运行 dotnet test 在包含这样的测试目录的文件夹中:for /f %%%a in ('dir /b /s project.json') do dotnet test %%%a

查看日志,我可以看到个别作业未编译 return,退出代码为 1,但构建步骤本身 returns 退出代码为 0。

如何使失败编译尝试的退出代码传播到构建步骤?

您可以在 TC 中创建一个单独的步骤来仅编译目标测试项目,然后 运行 在下一步中不编译(使用 no-build 选项)进行测试(如果前面的所有步骤都成功)。

--no-build
Does not build the test project prior to running it.