这是我用来从指定库运行所有 NUnit 测试的命令
vstest.console.exe "PATH_TO_REPOSITORY\Tests\terminalBaseTests\bin\debug\terminalBaseTests.dll" /logger:trx /TestAdapterPath:"PATH_TO_REPOSITORY"
此 dll 包含 27 个测试,但我看到它们出于某种原因启动了 3 次,结果消息显示通过了 81 个测试
这是我用来从指定库运行所有 NUnit 测试的命令
vstest.console.exe "PATH_TO_REPOSITORY\Tests\terminalBaseTests\bin\debug\terminalBaseTests.dll" /logger:trx /TestAdapterPath:"PATH_TO_REPOSITORY"
此 dll 包含 27 个测试,但我看到它们出于某种原因启动了 3 次,结果消息显示通过了 81 个测试
Demarch 在评论中提供了正确的答案,以提高知名度,每当其他人遇到这个问题时,我都会在这里说明(我花了很长时间才弄清楚这一点):
症状:
VSTest.Console.exe 在使用 NUnit、Xunit 或其他测试运行程序而不是本机运行测试时运行两次甚至多次测试。
原因:
TestAdapter 的路径设置不正确(例如 $(Build.SourcesDirectory))或不存在。这让运行程序扫描所有文件夹以查找测试适配器。当存在多个时,所有测试适配器都将启动测试运行,导致所有测试运行多次。
解决方案: 将 testadapter 的路径重定向到你的包所在的文件夹。
/TestAdapterPath:"{solutionfolder}\packages"
$(Build.SourcesDirectory)\packages