等待黄瓜功能文件中的任务完成
Wait for a task to finish in cucumber feature file
我一直在 Rails 上为 Ruby 开发的应用程序编写黄瓜测试。应用程序提供服务器 (vm) 并等待结果(如成功或失败)并显示结果。供应服务器有 7-8 种不同的情况(或场景)。
我有 2 个问题
- 我怎样才能将这两种不同的场景大纲合二为一。这样我就不需要在示例部分重复 table。我想为所有场景(示例)创建配置请求,然后等待 15 分钟直到配置所有请求,并在 15 分钟后检查所有场景是否通过或失败。
- 由于这些测试需要更多时间才能完成,当我 运行 "bundle cucumber" 运行 包含所有功能文件时,如何跳过它们。我
不想每次都运行下面的测试。
我已经使用场景大纲和示例编写了黄瓜测试,如下所示。
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" 使用您不想重复的背景。
我一直在 Rails 上为 Ruby 开发的应用程序编写黄瓜测试。应用程序提供服务器 (vm) 并等待结果(如成功或失败)并显示结果。供应服务器有 7-8 种不同的情况(或场景)。
我有 2 个问题
- 我怎样才能将这两种不同的场景大纲合二为一。这样我就不需要在示例部分重复 table。我想为所有场景(示例)创建配置请求,然后等待 15 分钟直到配置所有请求,并在 15 分钟后检查所有场景是否通过或失败。
- 由于这些测试需要更多时间才能完成,当我 运行 "bundle cucumber" 运行 包含所有功能文件时,如何跳过它们。我 不想每次都运行下面的测试。
我已经使用场景大纲和示例编写了黄瓜测试,如下所示。
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" 使用您不想重复的背景。