为什么我看不到Cucumber"Around"中抛出的异常?

Chr*_*son 5 ruby cucumber

我有一组黄瓜测试,可以在构建服务器上运行.

我经常想要比服务器直接提供更快的反馈,所以我在运行时观察控制台输出.我想要一种用单个搜索词来识别任何失败测试的方法,所以我修改了我们的周围来打印任何异常的"失败测试",但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
Run Code Online (Sandbox Code Playgroud)

小智 -1

您是否尝试过使用 @allow-rescue 标签禁用 Cucumber 的异常捕获?

\n\n

@allow-rescue:关闭标记场景的 Cucumber\xe2\x80\x99s 异常捕获。当正在测试的代码预计会引发并处理异常时使用。

\n\n

https://github.com/cucumber/cucumber/wiki/Tags

\n