黄瓜功能中的递增变量

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 是一个很好的解决方案。