Cucumber 如何跳过黄瓜步骤?

Cucumber 如何跳过黄瓜步骤?,cucumber,Cucumber,我有这样的场景: 假设我进入这一页 当我打字的时候 我点击 然后我应该看看课文 我不应该看到那条线 如果我运行这个场景,它将执行所有5个步骤。但是我想跳过第四步(然后我应该看到文本),然后执行第五步 请给我你的建议。提前感谢。:) TL;博士-不要这样做-你(可能)弄错了。而你不能(轻易)做到这一点。正如Aslak(黄瓜的主要创作者之一)所写: 一个步骤可以产生以下结果: 未定义(没有匹配的stepdef) pending(引发PendingException的匹配stepdef) 通过(不抛

我有这样的场景:

  • 假设我进入这一页
  • 当我打字的时候
  • 我点击
  • 然后我应该看看课文
  • 我不应该看到那条线
  • 如果我运行这个场景,它将执行所有5个步骤。但是我想跳过第四步(然后我应该看到文本),然后执行第五步


    请给我你的建议。提前感谢。:)

    TL;博士-不要这样做-你(可能)弄错了。而你不能(轻易)做到这一点。正如Aslak(黄瓜的主要创作者之一)所写:

    一个步骤可以产生以下结果:

    • 未定义(没有匹配的stepdef)
    • pending(引发PendingException的匹配stepdef)
    • 通过(不抛出任何内容的匹配stepdef)
    • 失败(匹配的stepdef引发的异常不是PendingException)
    • 跳过(引发任何异常(未定义、挂起或失败)的步骤之后的步骤)
    你所要求的是一种新的结果——被忽略。可能是 通过抛出IgnoredException实现。这意味着 跳过的步骤必须更改为:(以下步骤) 引发任何异常(未定义、挂起或失败)-除非 异常为IgnoreException(异常)

    我不确定我是否喜欢这个。听起来比这更复杂 需要这样做。你已经掌握了一些必要的信息 有问题-您的步骤将失败或挂起。我看不出有什么问题 值继续执行以下步骤。你还得 执行失败/挂起步骤

    只要有人提醒你“这里还有工作要做”,我 不要认为告诉你是哪种黄瓜会让黄瓜变得复杂 还有很多工作要做

    阿斯拉克


    整个讨论都在这里:

    我不得不根据环境有条件地跳过步骤。我使用
    next
    跳过步骤。下面是一个关于如何做你想做的事情的例子

    Then /^I should see the text/$ do
        next if @environment == 'no text'
    
        ...
           <The actual step definition>
        ...
    end
    
    然后/^我应该看到文本/$do
    下一步如果@environment==“无文本”
    ...
    ...
    结束
    
    我同意@Ernest下面的回答;您所问的似乎是Cucumber的一个错误用例。很想知道你为什么想要这个功能。谢谢你的回复:-)我需要在我的项目中使用这个功能。我如何处理这些场景?给我你的建议。我不知道“待定”,这很有帮助。谢谢。你能详细说明一下吗?比如,我们可以通过在“”部分中对其进行定义来更进一步吗?我们如何定义它?“下一步”跳过下面的所有内容,它有点像“返回”,可能也会起作用。按照通常的方式编写步骤,但在步骤的第一行,使用上面的“如果”语句,如果您不想运行下面的代码,就不要运行下面的代码。我不明白,当我键入
    next if
    like
    Invalid next(SyntaxError)
    我已经好几年没有使用cucumber了。如果next有新语法,请告诉我。一般来说,你能在一个步骤中调用
    next