跳过Cucumber场景中的某些步骤

时间:2015-07-30 10:41:41

标签: ruby testing cucumber

我有一个cuke场景,

Scenario: Hello World
Then do action one
Then do action two
Then do action three
Then do action four
Then do action five

但是,根据环境变量,我想跳过action threeaction four。我知道我可以走这一步并做一个if-else检查,但它并不是很优雅。有没有更好的解决方案?谢谢:))

3 个答案:

答案 0 :(得分:2)

你不能在小黄瓜做这件事,你也不想这样做!小黄瓜不是用于编程,也不是用于说明'如何'事情已经完成,而不是说明什么'事情是和为什么'他们已经完成了。

一般来说,当你发现自己想要在Gherkin(循环,条件等)中编程时,你想要做的是

  1. 编写一个更抽象的场景,无需编程
  2. 将编程推入步骤定义(或偶尔将其拉入运行黄瓜的脚本中)
  3. 在你的情况下,你可以通过

    来做到这一点
    ssh example@192.168.1.37

    When I act
    Then ...
    

    并使用Gi​​ven中的状态设置允许条件行为在When

    e.g。

    Given we are simple
    When I act
    Then ...
    

    使用Cucumber是非常简单和高效的,而不是试图让它完全按照你的意愿行事。黄瓜不是一种通用的测试工具,您最好改变使用方式或使用其他工具。祝你好运......

答案 1 :(得分:1)

您可以创建两个方案并使用tags对其进行过滤:

@complete-scenarios-tag
Scenario: Complete Hello World
    Then do action one
    Then do action two
    Then do action three
    Then do action four
    Then do action five

@simple-scenarios-tag
Scenario: Simple Hello World
    Then do action one
    Then do action two
    Then do action five

然后你可以只运行简单的场景:

cucumber --tags @simple-scenarios-tag

答案 2 :(得分:1)

您可以在识别环境变量的步骤中包含代码。

Given(/^the evironment has whatever$/) do
  if ENV['whatever'] == false
     do.something
  end
end

这只是一个例子。代码可以做任何你想做的事。