对多个 Cucumber js 场景使用相同的示例
Use the same examples for multiple Cucumber js scenarios
我发现很难使用多个场景大纲来按顺序使用相同的示例和 运行。我的用例是这样测试的功能:
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 |
我发现 运行将所有测试作为一个大型场景大纲使它们 运行 更快,但黄瓜报告和场景之间的区别不太清楚。
有没有办法在场景大纲中嵌套场景?如果不是,这种情况的最佳做法是什么?
嵌套创建依赖场景。具有依赖场景是一种 BDD 反模式。连续场景也是anti-pattern。每个场景都应该能够独立运行。所以,这不是解决方案。重新访问您的功能以更好地了解支持它的行为可能会有所帮助。
据我了解,如果您的条件适用于同一特征的多个场景,则它被视为background
场景。因此,如果您需要检查登录行为,请在后台执行一次。然后,默认情况下,它将应用于该功能的所有场景。
如果您有状态相关的先决条件,请使用辅助方法或 world
构造函数。
如果谁有更完善的解决方案,欢迎补充。
我发现很难使用多个场景大纲来按顺序使用相同的示例和 运行。我的用例是这样测试的功能:
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 |
我发现 运行将所有测试作为一个大型场景大纲使它们 运行 更快,但黄瓜报告和场景之间的区别不太清楚。
有没有办法在场景大纲中嵌套场景?如果不是,这种情况的最佳做法是什么?
嵌套创建依赖场景。具有依赖场景是一种 BDD 反模式。连续场景也是anti-pattern。每个场景都应该能够独立运行。所以,这不是解决方案。重新访问您的功能以更好地了解支持它的行为可能会有所帮助。
据我了解,如果您的条件适用于同一特征的多个场景,则它被视为background
场景。因此,如果您需要检查登录行为,请在后台执行一次。然后,默认情况下,它将应用于该功能的所有场景。
如果您有状态相关的先决条件,请使用辅助方法或 world
构造函数。
如果谁有更完善的解决方案,欢迎补充。