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

rog*_*ack 14 ruby cucumber

我想不要运行某些黄瓜功能,比如说,我在窗户上.谷歌和黄瓜文档似乎变得干涸,所以在这里很吸引人.

谢谢!

bur*_*tlo 19

支持Tyler的回答我想提出这些额外的信息:

使用黄瓜配置文件

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

# config/cucumber.yml
##YAML Template
---
windows: --tags ~@not-windows
default: --tags @not-windows
Run Code Online (Sandbox Code Playgroud)

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

$ cucumber
Run Code Online (Sandbox Code Playgroud)

执行(在Windows系统上):

$ cucumber -p windows
Run Code Online (Sandbox Code Playgroud)

您可以将默认值设置为当前所处的环境,以节省自己必须记住哪些功能不执行; 允许你只是执行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
Run Code Online (Sandbox Code Playgroud)

执行(在任一平台上):

$ rake features
Run Code Online (Sandbox Code Playgroud)

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


Tyl*_*ler 17

处理此问题的最佳方法可能是使用标签.

例如,如果您添加类似于@not-windows功能的标记,则可以自定义黄瓜执行以忽略此操作.

@not-windows
Feature: Your feature that causes a problem
  your scenarios
Run Code Online (Sandbox Code Playgroud)

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

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