【发布时间】:2014-06-29 04:18:04
【问题描述】:
我是 Rake 的新手。
我正在编写一系列测试来验证存储在 YAML 文件中的数据。每个测试都是一个单独的 rake 任务。
我的问题是:我希望在多个测试失败的情况下最后引发一个异常。
这似乎是一个简单的问题,但我担心在谷歌搜索后我找不到一个干净的方法。
一种解决方案可能是使用多个开始、救援块和一个全局变量?
status = 0
desc 'task 1'
task :task_1 do
begin
raise if something_is_bad
rescue
puts "something is bad"
status += 1
end
end
desc 'task 2'
task :task_2 do
begin
raise if something_else_is_bad
rescue
puts "something else is bad"
status += 1
end
end
desc 'default task'
task :default do
Rake::Task['task_1'].execute
Rake::Task['task_2'].execute
if status
raise "There were errors"
end
end
这似乎导致过多重复开始,救援。
另一种解决方案可能是有一个错误处理方法?
status = 0
def handle_failure(status, message)
status += 1
puts message
end
desc 'task 1'
task :task_1 do
handle_failure(status, "something is bad") if something_is_bad
end
desc 'task 2'
task :task_2 do
handle_failure(status, "something else is bad") if something_else_is_bad
end
desc 'default task'
task :default do
Rake::Task['task_1'].execute
Rake::Task['task_2'].execute
if status
raise "There were errors"
end
end
我还是觉得一定有更好的办法?
【问题讨论】: