vstest.console.exe多次运行相同的测试

3
这是我用来运行指定库中所有NUnit测试的命令: vstest.console.exe "PATH_TO_REPOSITORY\Tests\terminalBaseTests\bin\debug\terminalBaseTests.dll" /logger:trx /TestAdapterPath:"PATH_TO_REPOSITORY" 这个dll包含27个测试,但我发现它们因某种原因被启动了3次,结果消息显示通过了81个测试。

你解决过这个问题吗?我在TFS 2015的新构建系统中使用xUnit时遇到了同样的问题。 - PascalK
2
是的。在我的情况下,这是由于未指定测试适配器路径,因此 VS 尝试扫描生成的所有 dll,并发现包含测试适配器的一个 dll 被多次发现。解决方法是将测试适配器路径设置为一个特定的 dll 位置。 - Demarsch
1个回答

3
Demarch在评论中提供了正确的答案,为了让其他人遇到这个问题时能够看到,我在这里陈述一下(我花了太长时间才弄清楚): 症状:
当使用NUnit、Xunit或其他测试运行器而不是本机运行器时,VSTest.Console.exe会运行两次甚至多次。 原因:
测试适配器的路径未正确设置(例如设置为$(Build.SourcesDirectory)),或者未存在。这会导致运行器扫描所有文件夹以查找测试适配器。当有多个适配器存在时,所有测试适配器都将启动一个测试运行,导致所有测试运行多次。 解决方案: 将测试适配器的路径重定向到您的包所在的文件夹。
  • 如果您从命令行运行,请将以下参数设置为VSTest.Console.exe的某些内容:/TestAdapterPath:"{solutionfolder}\packages"
  • 如果您在TFS中运行,请打开Visual Studio Test构建步骤的"高级执行选项"部分,并将以下参数设置为类似于此的内容:$(Build.SourcesDirectory)\packages

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接