首页 文章

对多个Cucumber js场景使用相同的示例

提问于
浏览
1

我发现很难使用多个场景大纲来使用相同的示例并按顺序运行 . 我的用例是用于测试这样的功能:

Scenario Outline: Time consuming login process
  When I enter login credentials for <user> 
  Then I should be on the home page

  Examples:
    | user |
    | user1 |
    | user2 |
    | user3 |

Scenario Outline: User action 1
  Given I am logged in
  When I do something
  Then I should see response

  Examples:
    | user |
    | user1 |
    | user2 |
    | user3 |

#Many more tests needed to be done for each user

对每个场景使用场景大纲的问题是需要为每个测试运行耗时的场景(登录) . 为了解决这个问题,我将这些测试作为一个大的场景大纲运行:

Scenario Outline: 
  #Scenario: Time consuming login process
    When I enter login credentials for <user> 
    Then I should be on the home page

  #Scenario: User action 1
    Given I am logged in
    When I do something
    Then I should see response

  #More tests here

    Examples:
      | user |
      | user1 |
      | user2 |
      | user3 |

我发现运行所有测试,因为一个大的场景大纲使它们运行得更快,但是黄瓜报告和场景之间的区别不太清楚 .

有没有办法在场景大纲中嵌套场景?如果没有,这种情况的最佳做法是什么?

1 回答

  • 0

    嵌套创建依赖方案 . 具有依赖场景的是BDD反模式 . 顺序场景也是anti-pattern . 每个方案都应该能够独立运作 . 所以,这不是一个解决方案 . 重新审视您的功能可能有助于更好地了解支持它的行为 .

    根据我的理解,如果您的条件适用于多个场景 of the same feature ,则会将其视为 background 场景 . 因此,如果您需要检查登录行为,请在后台执行一次 . 默认情况下,它将应用于该功能的所有方案 .

    如果您有依赖于状态的前提条件,请使用辅助方法或 world 构造函数 .

    如果有人有更精致的解决方案,请随时添加 .

相关问题