等待黄瓜功能文件中的任务完成

Wait for a task to finish in cucumber feature file

我一直在 Rails 上为 Ruby 开发的应用程序编写黄瓜测试。应用程序提供服务器 (vm) 并等待结果(如成功或失败)并显示结果。供应服务器有 7-8 种不同的情况(或场景)。

我有 2 个问题

我已经使用场景大纲和示例编写了黄瓜测试,如下所示。

Scenario Outline: Create A New Server Request
Given user is on create new server request page
When user enters follwing data

| Datacenter             | <Datacenter> |
| Cores          |<Cores>   |                                                   |
| Memory             | <Memory> |               

Then he should see request submitted


Examples: 
|DataCenter |Cores| Memory|
| ABC       | 2   | 1 GB  |
| DEF       | 4   | 2 GB  |
| GHI       | 8   | 4 GB  |
| JKL       | 4   | 2 GB  |


Scenario: Wait till provisioning happens
Given user waits for 15 minutes

Scenario Outline: Verify a New Server Request
Given user is on provision server  page
When user check the request with follwing data

| Datacenter             | <Datacenter> |
| Cores          |<Cores>   |                                                   |
| Memory             | <Memory> |               

Then he should see servers are provisioned

Examples: 
|DataCenter |Cores| Memory|
| ABC       | 2   | 1 GB  |
| DEF       | 4   | 2 GB  |
| GHI       | 8   | 4 GB  |
| JKL       | 4   | 2 GB  |

Anupam,我相信背景是您所需的关键。将您的服务器集设置为使用背景作为变量使用,然后在场景中简单地引用这些服务器。我还会合并 "given the user is on ____ page",因为您可以将实现细节隐藏在 stepdef 中以提供、检查队列并检查结果。

Background: The set of servers to provision
Given the following set of servers are to be provisioned
|DataCenter |Cores| Memory|
| ABC       | 2   | 1 GB  |
| DEF       | 4   | 2 GB  |
| GHI       | 8   | 4 GB  |
| JKL       | 4   | 2 GB  |

@slow
Scenario: Provision New Servers
When a user provisions the set of servers
Then the user should see the set of servers submitted
When the user waits 15 minutes
Then the user should see the set of servers have been provisioned

要在您的步骤中保留背景数据,只需将其设置为 World 对象上的实例变量即可。我可能会使用 Cucumber::Ast::Table.hashes 将数据转换为更易于使用的数据格式。

@server_set = table.hashes

至于不是每次都运行这些测试,我会设置一个黄瓜@tag,用于排除花费时间过长的场景。您还可以设置一个 yaml 配置文件来处理这个问题,然后在您的测试中调用适当的配置文件。有关示例,请参阅黄瓜文档。 https://github.com/cucumber/cucumber/wiki/cucumber.yml

编辑:您也可以在第一步 def 上设置变量,但我喜欢为 "data" 使用您不想重复的背景。