Как мне необязательно не запускать функцию огурца
Я хочу не запускать определенную функцию огурца, если, скажем, я на окнах. 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
Это должно автоматически включать правильный тег, основанный на вашей среде.