игнорирование функций в огурце-jvm

Я знаю, что вы можете указать теги для функций, а затем игнорировать их при запуске огурца в командной строке. Но я использую огурец-jvm и запускаю его из maven. @ignore не работает, и я не знаю, как передать теги, которые следует игнорировать, бегуну, который выполняет тесты Gherkin.

Обходной путь заключается в перемещении уже выполненных функций в другой каталог при разработке и тестировании новых, но это не так. Как другие пользователи справляются с этим недостатком?


person Cpt. Senkfuss    schedule 19.09.2013    source источник


Ответы (2)


Вы можете пометить свои сценарии как @ignore, которые будут проигнорированы.

Если вы хотите запускать только выборочные сценарии, пометьте каждую новую функцию, которую вы хотите протестировать, как @new_test. Скажите Cukes Runner запускать только теги = @new_test

import org.junit.runner.RunWith;
import cucumber.api.junit.Cucumber;

@RunWith(Cucumber.class)
@Cucumber.Options(features = {"classpath:my_feature.feature"},
tags = {"@new_test"})
public class RunCukesTest {

}

Все, что вы не хотите тестировать, не должно иметь тега или должно иметь другое имя тега.

person LINGS    schedule 03.10.2013
comment
спасибо за опцию тегов, похоже, она работает; Я считаю, что если тест находится в том же пакете, что и функции, вы можете пропустить опцию функций, что очень удобно; если бы вам нужно было перечислить каждую функцию здесь, вы могли бы обойтись и без тега, в конце концов... - person Cpt. Senkfuss; 03.10.2013
comment
Это особенно помогло мне при создании новых функций и сценариев. Я хочу запустить только новые в начале, и этот ответ поможет. - person Jeremy; 05.11.2015

Вы можете сказать бегуну пропустить @ignore

import org.junit.runner.RunWith;
import cucumber.api.junit.Cucumber;

@RunWith(Cucumber.class)
@Cucumber.Options(features = {"classpath:my_feature.feature"},
tags = {"~@ignore"})
public class RunCukesTest {
}
person talex    schedule 20.05.2014
comment
Работает как шарм! Я предпочитаю, чтобы @Ignore соответствовал JUnit. - person Joseph Lust; 07.06.2014
comment
На самом деле это правильный ответ. Оператор ~ используется для обозначения пропускаемых тегов. Принятый ответ работает, но это окольный способ его достижения, потому что обычно количество игнорируемых сценариев меньше. Не должно быть необходимости помечать все сценарии, которые вы хотите запустить (если это не помогает другим способом). - person BakaTono; 04.02.2015
comment
Я заметил, что без этого явного фильтра тегов (исключить @ignore); @ignore не используется по умолчанию; поэтому я только что обновил вики-страницу, которая рассказывает о теге @ignore: github.com/cucumber/cucumber/ вики/теги - person boly38; 15.12.2015
comment
Имя тега не имеет значения, любое имя тега, указанное в раннере с tags = {~@tagname}, будет игнорироваться. Таким образом, тег @ignore не является специальным тегом. - person Mark Krijgsman; 26.02.2016
comment
Я пробовал с вашим решением. Но, это не пропускает сценарии на всех. Я указал это в тегах своего класса бегуна = {@GeoY/NModal1ItemOfEachTypeSaveToCampaign, ~@ignore}, а затем я использую @ignore в файле функций для определенного сценария. Можете ли вы сказать мне, что мне здесь не хватает? - person selvi; 29.04.2016