Как мне необязательно не запускать функцию огурца

Я хочу не запускать определенную функцию огурца, если, скажем, я на окнах. Google и документы огурца, казалось, оказались сухими, так привлекательными здесь.

Спасибо!

Ответы

Ответ 1

Лучший способ приблизиться к этому, скорее всего, будет использовать теги.

Например, если вы добавите тег типа @not-windows к функции, вы можете настроить выполнение огурца, чтобы проигнорировать это.

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

Если вы затем запустите свои тесты с помощью cucumber --tags [email protected], он запустит все cukes, которые не помечены @not-windows. ~ То, что вызывает "не" поведение, вы можете запускать ТОЛЬКО эти теги, выполняя cucumber --tags @not-windows. Используя первую линию огурца, находясь в Windows, вы можете заблокировать проблемные функции (или отдельные сценарии), но если вы находитесь в другой ОС и обычно запускаете огурец, они все равно будут выполняться.

Ссылка: https://github.com/cucumber/cucumber/wiki/Tags

Ответ 2

Поддержка ответа Тайлера. Я хотел бы предложить эту дополнительную информацию:

Использовать Профили огурца

Если вы используете систему в нескольких разных средах, вы можете создать файл профиля, а затем просто определить профиль по умолчанию для вас, который исключает файл.

# config/cucumber.yml
##YAML Template
---
windows: --tags [email protected]
default: --tags @not-windows

Выполнение (в системе без окна или по умолчанию)

$ cucumber

Выполнение (в системе Windows):

$ cucumber -p windows

Вы можете установить по умолчанию любую среду, в которой вы сейчас находитесь, чтобы сохранить себя, чтобы помнить, какие функции не выполняются; позволяя вам просто выполнить cucumber.

Использовать Задача огуречного окуня

Создайте задачу рейка, которая проверяет вашу среду и включает тег, который вы хотите:

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 ? "[email protected]" : "@not-windows")
  t.cucumber_opts = "features #{tags}"
end

Выполнение (на любой платформе):

$ rake features

Это должно автоматически включать правильный тег, основанный на вашей среде.