仅在几个步骤中循环运行黄瓜步骤

时间:2014-03-15 09:31:30

标签: cucumber

是否可以循环黄瓜方案中仅识别的步骤

例如,在以下示例中,如果我想循环除第一个之外的其他步骤。因为第一步应该只运行一次

Scenario Outline: submit guess
  Given I am logged as Admin
  And the secret code is <code> 
  When I guess <guess>
  Then the mark should be <mark>

Examples: all colors correct
| code    | guess   | mark |
| r g y c | r g y c | bbbb |
| r g y c | r g c y | bbww |
| r g t g | r g w e | bbpp |

这可能在黄瓜?目前,它根据参数值运行所有步骤四次。

由于

2 个答案:

答案 0 :(得分:2)

使用像旗帜一样的变量可以轻松实现。像这样的东西

Before do
  if !$ran_once
   $ran_once = false
  end
end

Given(/^I am logged as Admin$/) do
  do something unless $ran_once
  $ran_once = true
end

参考https://docs.cucumber.io/cucumber/api/#hooks

答案 1 :(得分:2)

场景大纲旨在运行整个场景&#34;但每次都有不同的数据。虽然您可以在before hook中设置一个标志,然后在第一次运行该步骤时标记它,但您正在泄漏测试状态。这通常是一种不好的做法。

相反,最好只使用一个使用表进行验证步骤的场景:

    Scenario: Submitting guesses
      Given I am logged as Admin
      Then my guesses display the correct colors:
        | code    | guess   | mark |
        | r g y c | r g y c | bbbb |
        | r g y c | r g c y | bbww |
        | r g t g | r g w e | bbpp |