我还在学习Rake.
Rake是否已经内置支持来处理任务的错误,如NANT的MSBuild:如果此任务失败; 执行anoter任务(回滚等)
例如:在MSBuild中他们有OnError元素
<OnError ExecuteTargets="RollBackDatabase" />
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助
我们有一个在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
Run Code Online (Sandbox Code Playgroud)
这会生成一个很好的TRX文件,TeamCity可以解析它和所有内容,从而形成一个漂亮的干净报告选项卡.但是,如果测试失败,MSTest.exe将返回1,该rake将其解释为失败,并导致其余测试无法运行.
我们想抑制这种行为; 我们希望构建在测试失败时继续运行,以便我们可以看到其他测试也可能失败.如果测试失败,我们如何让Rake忽略返回代码,和/或导致MSTest.exe不发出失败的返回代码?