我希望不运行某些黄瓜功能,比如说,我在Windows上。谷歌和黄瓜文档似乎变得干涸,所以在这里很有吸引力。
谢谢!
答案 0 :(得分:19)
支持Tyler的回答我想提出这些补充信息:
如果您在多个不同的环境中运行系统,您可能需要创建一个配置文件,然后只为您定义一个排除该文件的默认配置文件。
# config/cucumber.yml
##YAML Template
---
windows: --tags ~@not-windows
default: --tags @not-windows
执行(在非Windows系统/默认情况下)
$ cucumber
执行(在Windows系统上):
$ cucumber -p windows
您可以将默认值设置为当前所处的环境,以节省自己必须记住哪些功能未执行;允许您只执行cucumber
。
创建一个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中使用第一个黄瓜线,你可以阻止运行中有问题的功能(或个别情况),但如果你在另一个操作系统并正常运行黄瓜,这些仍将运行。