这是我用来从指定的库运行所有NUnit测试的命令
vstest.console.exe "PATH_TO_REPOSITORYTeststerminalBaseTestsbindebugterminalBaseTests.dll" /logger:trx /TestAdapterPath:"PATH_TO_REPOSITORY"
这个dll包含27个测试,但我看到它们由于某种原因启动了3次,结果消息说81个测试通过了
Demarch在评论中提供了正确的答案,以提高可见性,每当其他人偶然发现这个问题时,我都会在这里说明(我花了很长时间才弄清楚):
症状:
当使用NUnit、Xuit或其他testrunner时,VSTest.Console.exe会运行两次甚至多次测试。
原因:
TestAdapter的路径未正确设置(例如设置为$(Build.SourcesDirectory))或不存在。这允许运行程序扫描所有文件夹中的测试适配器。当存在多个测试时,所有测试适配器将启动一个测试运行,导致所有测试运行多次。
解决方案:将testadapter的路径重定向到包所在的文件夹。
- 如果从命令行运行,请将VSTest.Console.exe的以下参数设置为类似的值:
/TestAdapterPath:"{solutionfolder}packages"
- 如果您在TFS中运行它,请打开Visual Studio测试构建步骤的"高级执行选项"部分,并将以下参数设置为类似的值:
$(Build.SourcesDirectory)packages