黄瓜停止执行基于示例参数

cucumber stop execution based on Examples parameter

是否可以在满足条件后停止 运行 个步骤?对于有多个页面的网络应用程序,我有检查所有页面的场景,有些会在中间停止。

我想使用相同的功能文件而不是重复场景大纲,目前功能如下所示:

Scenario Outline: TC__<tcNr>__<endScenarioPage>

    # dataPrep step
    Given step for data prep <params1> <params2>

    # page_1
    Given step 1 <params1>
    Given step 2 <params2>

    # page_2
    Then step 1 <params3>
    Then step 2 <params4> <endScenarioPage>

    # page_3
    Then step 1 <params5> 
    Then step 2 <params6>

    # page_4
    Then step 1 <params7>
    Then step 2 <params8>

    @set1
    Examples:
        | tcNr    | params1 | params2 | endScenarioPage |
        | "SCN01" | " ..."  | " ..."  | "page2"         |
        | "SCN02" | " ..."  | " ..."  | "page4"         |
        | "SCN03" | " ..."  | " ..."  | "page2"         |

    @set2
    Examples:
        | tcNr    | params1 | params2 | endScenarioPage |
        | "SCN01" | " ..."  | " ..."  | "page2"         |
        | "SCN02" | " ..."  | " ..."  | "page2"         |
        | "SCN03" | " ..."  | " ..."  | "page4"         |

因此对于@set1 测试中的场景“SCN01”和“SCN03”,应在第 2 页停止。

场景大纲只是在一个功能代码块中编写多个单独场景的一种复杂方式。通过不使用大纲而只编写单独的场景,您可以使事情变得更加简单和清晰。那么你停止的问题就会消失,因为那种情况不会有那一步

Scenario: 4 page example
  Given x
  Then 1
  And 2
  And 3
  And 4

Scenario: 2 page example
  Given y
  Then 1
  And 2

最好写很多简单的场景(即使它们有很多重复比一个复杂的场景大纲(就像你在你的问题中那样)。