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

Unit testing vstest.console.exe多次运行相同的测试,unit-testing,vstest,vstest.console.exe,Unit Testing,Vstest,Vstest.console.exe,这是我用来运行指定库中所有NUnit测试的命令 vstest.console.exe“路径到存储库\Tests\terminalBaseTests\bin\debug\terminalBaseTests.dll”/logger:trx/TestAdapterPath:“路径到存储库” 这个dll包含27个测试,但我发现它们出于某种原因启动了3次,结果显示81个测试通过了Demarch在评论中提供了正确的答案,以便于查看,每当其他人遇到这个问题时,我都会在这里陈述(我花了很长时间才弄明白): 症状

这是我用来运行指定库中所有NUnit测试的命令

vstest.console.exe“路径到存储库\Tests\terminalBaseTests\bin\debug\terminalBaseTests.dll”/logger:trx/TestAdapterPath:“路径到存储库”


这个dll包含27个测试,但我发现它们出于某种原因启动了3次,结果显示81个测试通过了

Demarch在评论中提供了正确的答案,以便于查看,每当其他人遇到这个问题时,我都会在这里陈述(我花了很长时间才弄明白):

症状:
当使用NUnit、Xunit或其他testrunner时,VSTest.Console.exe会运行测试两次甚至多次

原因:
TestAdapter的路径设置不正确(例如,设置为$(Build.SourcesDirectory)或不存在。这允许运行程序扫描所有文件夹以查找测试适配器。当存在多个测试时,alltestadapters将启动一个测试运行,导致所有测试运行多次

解决方案: 将testadapter的路径重定向到包所在的文件夹

  • 如果从命令行运行,请将VSTest.Console.exe的以下参数设置为类似以下内容:
    /TestAdapterPath:“{solutionfolder}\packages”
  • 如果在TFS中运行,请打开Visual Studio测试生成步骤的“高级执行选项”部分,并将以下参数设置为类似的值:
    $(build.SourcesDirectory)\packages

您解决过这个问题吗?在TFS 2015的新构建系统中,我与xUnit有相同的问题是。在我的例子中,这是由于没有指定测试适配器的路径,因此VS尝试扫描生成期间生成的所有dll,并且多次发现了一个包含测试适配器的dll。修复方法是将测试适配器的路径设置为一个特定的dll位置