如何使 MSTest.exe即使测试失败也返回 0



我们有一个在TeamCity上运行的版本,其中包含几个不同的测试项目。 它们每个一个接一个地运行,我们使用 Rakefile 中的 MSTest.exe 来编排所有内容,因此:

desc 'Run Unit Tests'
mstest :data_test => [:build_database_tests] do |mstest|
  puts build_header("Data Tests")
  mstest.command = msTestCommand
  mstest.parameters = [
    "/resultsfile:dTest.trx", 
    "/detail:errormessage", 
    "/detail:description",
    "/usestderr"
  ]
  mstest.assemblies  "../../../Database/DataTests/bin/Release/DataTests.dll"
end

这将生成一个漂亮的 TRX 文件,TeamCity 可以解析该文件和所有内容,从而成为一个漂亮的干净报告选项卡。 但是,如果测试失败,MSTest.exe 将返回 1,这将 rake 解释为失败,并导致其余测试无法运行。

我们希望

禁止这种行为;我们希望在测试失败时继续运行构建,以便我们可以看到其他测试也可能失败。 我们如何让 Rake 忽略返回代码,和/或导致 MSTest.exe 在测试失败时不发出失败的返回代码?

MSTest 本身将执行所有测试集,即使前一个测试集失败。你的问题在于Rake所做的解释。大多数(如果不是全部)构建语言(ANT,MSBuild,Gradle等)都有类似"出错时继续"的行为。

在谷歌上快速搜索"耙子继续出错",我发现了几个链接:

http://www.rake.build/fascicles/004-ignore-failed-tasks.html失败后继续耙

我得到的基本要点是,您可以使用sh遍历一系列任务并忽略失败,以便执行所有任务。

相关内容

  • 没有找到相关文章

最新更新