我有一组黄瓜测试可以在构建服务器上运行。
我经常想要比服务器直接提供更快的反馈,因此我在运行时观察控制台输出。我想要一种用单个搜索词来识别任何失败测试的方法,所以我修改了我们的周围来打印任何异常的“失败测试”,但Ruby似乎并没有将异常交给周围。我已经通过在开始...结束后发表声明来验证这一点。
有没有人知道为什么会发生这种情况,或者在开始时包装因失败测试而引发的任何异常?
Around() do |scenario, block|
begin
Timeout.timeout(0.1) do
block.call
end
rescue Timeout::Error => e
puts "Failed Test"
puts caller
rescue Exception => e
puts "Failed Test"
raise e
end
end
答案 0 :(得分:1)
看看黄瓜1.3.12,它实际上拯救了场景步骤中的任何异常。因此,如果不修改黄瓜宝石,你就无法以任何方式看到它们。
有关更多信息,请参阅我的答案,了解如何在该位置放置调试钩子: https://stackoverflow.com/a/22654786/520567
答案 1 :(得分:-1)
您是否尝试过使用@ allow-rescue标记禁用Cucumber的异常捕获?
@ allow-rescue:关闭Cucumber对标记场景的异常捕获。在被测试的代码应该引发和处理异常时使用。