如何在运行Cucumber Rake任务时排除文件/目录?

时间:2015-06-17 18:48:18

标签: ruby tags cucumber rake

我目前在我的scenario文件夹中有两个具有不同功能的文件夹:

features
  scenarios
    folder_1
      first_feature.feature
    folder_2
      second_feature.feature

在这些功能中,我有许多共享不同标签的方案

first_feature.feature:

Feature: One
  @tag1 @tag2
  Scenario: Scenario 1

  @tag3
  Scenario: Scenario 2

second_feature.feature:

Feature: Two
  @tag1 @tag4
  Scenario: Scenario 3

所以这就是问题所在:我有一个rake任务,它遍历我的场景并使用标签@ tag1运行所有内容。现在包括功能一中的场景1和功能2中的场景3。在不更改任何标签或场景的情况下,我可以添加到我的rake任务中以告诉它忽略某个文件/文件夹中的任何测试吗?在上面的示例中,我希望我的rake任务忽略它在folder_2中找到的任何场景,因此即使它有@ tag1,场景3也不会运行。

我当前的佣金任务:

Cucumber::Rake::Task.new(:all_tag_1) do |t|
  tags = '--tags ~@wip --tags @tag1'
  t.cucumber_opts = "--format html --out features/build_results/all_tag_1.html --format pretty #{tags} --format junit --out features/build_results/reports"
end

问题的一部分是我浏览了互联网和Cucumber文档,无法找到列出所有有效的cucumber_opts选项的地方。如果有人能够指出我正确的方向找到不同可能性的清单,那将非常感激。

谢谢。

1 个答案:

答案 0 :(得分:0)

Cucumber::Rake::Task.new(:all_tag_1) do |t| tags = '--tags ~@wip --tags @tag1' t.cucumber_opts = "features/scenarios/folder_1 --format html --out features/build_results/all_tag_1.html --format pretty #{tags} --format junit --out features/build_results/reports" end

此命令仅运行features / scenarios / folder_1文件夹中的方案...