我在 C# 解决方案中有一套 800 多个测试。他们正在使用 XUnit。 xunit.runner.json 要求测试串行运行。换句话说,一次不应该运行多个测试。
我正在尝试调试一个有时会在其中一个测试中触发的 Heisenbug。我发现自己想知道这是否可能与测试运行之前发生的事情有关。
有没有办法查看测试运行的顺序?或者甚至查看在我的目标测试之前立即运行了什么测试?
显然,可以修改所有测试以在测试开始时记录测试的名称。
相关问题在这里是否可以看到测试运行的顺序?。但它已经 11 年了,没有一个对我的情况有用的答案。
您可以使用 vstest.console.exe 从命令行运行测试,它会在运行时记录测试名称:
vstest.console.exe .\path-to-your-test.dll
vstest.console.exe 随 Visual Studio 一起提供,可以从开发人员命令提示符中调用,或者您可以在
%ProgramFiles%\Microsoft Visual Studio\<version>\<edition>\Common7\IDE\Extensions\TestPlatform
中找到它(对于较旧的 32 位版本 VS,它位于 %ProgramFiles(x86)%
下,而不是 %ProgramFiles%
).
显然,如果测试并行运行,则输出顺序不一定正确。但既然这对你来说不是问题,那应该没问题。