黄瓜功能中的递增变量
Incrementing variables in Cucumber features
我有一个相当标准的 Cucumber 功能文件,大致如下:
Scenario Outline: Check invalid message queue
When a request is sent
Then there is 1 item in the invalid queue
我目前 运行 这些在我的示例 table 中有一个额外的“计数”列,所以我的功能看起来像:
Scenario Outline: Check invalid message queue
When a request is sent
Then there is < count > item in the invalid queue
我的例子是:
| Var1 | var2 | count |
| aaa | aa1 | 1 |
| bbb | aa2 | 2 |
等等
虽然执行上述操作不是主要问题,但当测试失败时它会失败,如果我们在示例中说 10 个测试并且测试 5 没有进入队列,那么逻辑上以下所有测试都会失败,因为队列中的项目总是少一项。
我最理想的是让“计数”从 0 开始,然后在每次测试通过时递增,这样我就不会有“计数”列,如果测试 5 失败,则计数保持在 4当它进入测试 6.
我不建议在场景大纲中的示例之间存在依赖关系,它们通常应该在 JUnit 中单独运行。
推荐的方法是创建具有预定义状态的场景(假设我的队列中有 X 条消息),或者最坏的情况是交替执行操作(“发送请求时”)和结果检查(“然后我的队列中有 X 条消息”)。
如果你还想继续,我想你要找的是这里:
How to get iteration count in cucumber?
Grasshopper 的@Before hook 是一个很好的解决方案。
我有一个相当标准的 Cucumber 功能文件,大致如下:
Scenario Outline: Check invalid message queue
When a request is sent
Then there is 1 item in the invalid queue
我目前 运行 这些在我的示例 table 中有一个额外的“计数”列,所以我的功能看起来像:
Scenario Outline: Check invalid message queue
When a request is sent
Then there is < count > item in the invalid queue
我的例子是:
| Var1 | var2 | count |
| aaa | aa1 | 1 |
| bbb | aa2 | 2 |
等等
虽然执行上述操作不是主要问题,但当测试失败时它会失败,如果我们在示例中说 10 个测试并且测试 5 没有进入队列,那么逻辑上以下所有测试都会失败,因为队列中的项目总是少一项。
我最理想的是让“计数”从 0 开始,然后在每次测试通过时递增,这样我就不会有“计数”列,如果测试 5 失败,则计数保持在 4当它进入测试 6.
我不建议在场景大纲中的示例之间存在依赖关系,它们通常应该在 JUnit 中单独运行。
推荐的方法是创建具有预定义状态的场景(假设我的队列中有 X 条消息),或者最坏的情况是交替执行操作(“发送请求时”)和结果检查(“然后我的队列中有 X 条消息”)。 如果你还想继续,我想你要找的是这里: How to get iteration count in cucumber? Grasshopper 的@Before hook 是一个很好的解决方案。