【发布时间】:2018-01-01 15:41:27
【问题描述】:
我正在使用 rake 任务来运行用 Ruby 编写的测试。 耙子任务:
desc "This Run Tests on my ruby app"
Rake::TestTask.new do |t|
t.libs << File.dirname(__FILE__)
t.test_files = FileList['test*.rb']
t.verbose = true
end
我想创建一个超时,以便如果任何测试(或整个套件)挂起,将引发超时异常并且测试将失败。
我尝试创建一个新任务来运行超时的测试任务:
desc "Run Tests with timeout"
task :run_tests do
Timeout::timeout(200) do
Rake::Task['test'].invoke
end
end
结果是抛出了超时,但测试继续运行。
【问题讨论】:
-
我不知道只使用 Ruby 的干净方法。您可以将您的
Timeout调用包装在begin/rescue块中以捕获它抛出的异常并使用此处提出的bash解决方案之一stackoverflow.com/questions/6930157/…