Ern*_*est 13
TL; DR - 不要这样做 - 你(可能)弄错了.你不能(轻松)做到这一点.正如Aslak所写(黄瓜主要创作者之一):
一步可以得到以下结果:
- undefined(没有匹配的stepdef)
- pending(抛出PendingException的匹配stepdef)
- 传递(匹配的stepdef,不抛出任何东西)
- 失败(匹配的stepdef抛出异常而不是PendingException)
- 跳过(抛出任何异常的步骤之后的步骤(未定义,未决或失败))
你所要求的是一种新的结果 - 被忽略了.它可以通过抛出IgnoredException来实现.这意味着必须将skipped更改为:(在抛出任何异常(未定义,挂起或失败)的步骤之后的步骤 - 除非异常是IgnoredException)
我不确定我喜欢这个.听起来比它需要的更复杂.您已经拥有了某些不妥之处的必要信息 - 您的步骤将失败或未决.我没有看到继续执行以下步骤的价值.您仍然必须实施失败/暂挂步骤.
只要你被提醒"这里有工作要做",我认为这并不会让Cucumber复杂化,告诉你需要做什么样的工作......
Aslak
整个讨论在这里:http://comments.gmane.org/gmane.comp.programming.tools.cucumber/10146
我必须根据环境有条件地跳过步骤.我曾经next跳过步骤.这是一个如何做你想做的事情的例子.
Then /^I should see the text/$ do
next if @environment == 'no text'
...
<The actual step definition>
...
end
Run Code Online (Sandbox Code Playgroud)