我目前有一个项目,其中包含大量 Cucumber .feature
文件,其中许多场景已知已损坏。这些场景用 @broken
标记,我们通过使用 -t ~@broken
执行 cucumber 来避免运行它们。不幸的是,当我们检查 cucumber 输出时,这使得这些场景实际上是不可见的。它们不会显示为通过、失败或跳过。我想要的是将这些场景的数量包含在 cucumber 输出中。它们应该显示为“跳过”测试,而不是根本不显示。
我尝试过的:
Before('@broken') do |scenario|
pending
end
但是这引发了一个 Cucumber::Pending
异常,如果没有被捕获,就会使场景失败。
我知道我可以这样写一个步骤:
Given /^PENDING/ do
pending
end
然后浏览我所有的功能文件,并使用 @broken
标记将此步骤添加到每个场景。不过,这似乎很疯狂。它不符合“步骤”应该是什么的语义(更不用说它需要对我所有的功能文件进行广泛的更改,而不是仅仅向标签添加一个钩子(Hook))。
我只需要一个标签就可以做到这一点吗?
最佳答案
虽然这个问题很老,但它仍然是 Google 的最爱 - 所以为了 future 访问者的利益,我将分享这个问题。
我正在标记我的场景,然后在我的“step_definitions/hooks.rb”文件中,我有这样的东西:
Before('@proxy') do
skip_this_scenario unless proxy_running?
end
运行时,场景被优雅地跳过。
1 scenario (1 skipped)
关于ruby - 如何在 Cucumber 中使用 "skip"标记场景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26048144/