我发现很难使用多个场景大纲来使用相同的示例并按顺序运行。我的用例是用于测试这样的功能:
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 |
我发现运行所有测试都是因为一个大的Scenario Outline使它们运行得更快,但是黄瓜报告和场景之间的区别不太清楚。
有没有办法在场景大纲中嵌套场景?如果没有,这种情况的最佳做法是什么?
答案 0 :(得分:1)
嵌套创建依赖方案。具有依赖场景的是BDD反模式。顺序场景也是anti-pattern。每个方案都应该能够独立运作。所以,那不是解决方案。重新审视您的功能可能有助于更好地了解支持它的行为。
根据我的理解,如果您的条件适用于同一功能的多个方案,则会将其视为background
方案。因此,如果您需要检查登录行为,请在后台执行一次。默认情况下,它将适用于所有功能的场景。
如果您有依赖于状态的前提条件,请使用辅助方法或world
构造函数。
如果有人有更精致的解决方案,请随时添加。