我如何选择不运行黄瓜功能

时间:2011-05-20 17:39:44

标签: ruby cucumber

我希望运行某些黄瓜功能,比如说,我在Windows上。谷歌和黄瓜文档似乎变得干涸,所以在这里很有吸引力。

谢谢!

2 个答案:

答案 0 :(得分:19)

支持Tyler的回答我想提出这些补充信息:

使用Cucumber Profiles

如果您在多个不同的环境中运行系统,您可能需要创建一个配置文件,然后只为您定义一个排除该文件的默认配置文件。

# config/cucumber.yml
##YAML Template
---
windows: --tags ~@not-windows
default: --tags @not-windows

执行(在非Windows系统/默认情况下)

$ cucumber

执行(在Windows系统上):

$ cucumber -p windows

您可以将默认值设置为当前所处的环境,以节省自己必须记住哪些功能未执行;允许您只执行cucumber

使用Cucumber Rake Task

创建一个rake任务,检查您的环境并包含您想要的标记:

require 'rubygems'
require 'cucumber'
require 'cucumber/rake/task'

WINDOWS_PLATFORM = /mswin|win32|mingw/ unless defined? WINDOWS_PLATFORM

Cucumber::Rake::Task.new(:features) do |t|
  tags = (RUBY_PLATFORM =~ WINDOWS_PLATFORM ? "~@not-windows" : "@not-windows")
  t.cucumber_opts = "features #{tags}"
end

执行(在任一平台上):

$ rake features

这应该根据您的环境自动包含正确的标记。

答案 1 :(得分:17)

解决此问题的最佳方式可能是使用标签。

例如,如果您向某个功能添加@not-windows等标记,则可以自定义黄瓜执行以忽略此功能。

@not-windows
Feature: Your feature that causes a problem
  your scenarios

如果您随后使用cucumber --tags ~@not-windows运行测试,它将运行未被@ not-windows标记的所有cukes。 〜是导致“不”行为的原因,您只能通过执行cucumber --tags @not-windows来运行这些标记。在Windows中使用第一个黄瓜线,你可以阻止运行中有问题的功能(或个别情况),但如果你在另一个操作系统并正常运行黄瓜,这些仍将运行。

参考:https://github.com/cucumber/cucumber/wiki/Tags