【发布时间】:2013-10-23 02:24:28
【问题描述】:
我在我的 Cucumber 功能中添加了一个 Around 钩子,我希望它会在引发异常时导致 pry-rescue 开始 pry:
Around do |scenario, block|
Pry::rescue do
block.call
end
end
Around 钩子肯定会被调用,但是在步骤中抛出的异常不会被挽救。例如。这一步:
When(/^I perform the action$/) do
raise 'hell'
end
... 导致功能失败,但不会让我在控制台中窥探。
是否可以对 Cucumber 使用 pry-rescue?我也将此作为issue 提出,因为我怀疑这可能是一个错误。
更新: 根据 cmets 中 AdamT 的建议,我已经:
- 将
@allow-rescue标签添加到调用故意破坏步骤的功能中 - 添加了
puts日志记录以验证Around钩子正在被调用
引发异常时仍然无法进入pry,但我可以从puts 语句中看到它正在进入Around hook。
【问题讨论】:
-
您是否验证了 Around 钩子是由
puts或具有讽刺意味的binding.pry触发的? -
@AdamT:我已经验证了 Around 钩子正在被触发,并且我还在一个失败的步骤中测试了
Pry::rescue,并且效果很好。我只是没有设置好,以便 all 异常触发 pry。 -
您是否查看过
@allow-rescue的标记测试? github.com/cucumber/cucumber/wiki/Tags -
@AdamT:感谢您的建议-我刚刚尝试过,但失败了:(我会相应地更新问题文本。
-
我假设您使用
rescue rails server启动服务器?还是rescue cucumber?