У меня есть особая ситуация. В основном у меня есть единичный тест, аннотированный с помощью @Test, и внутри этого теста мне нужно выполнить тестовый класс JCM Cucumber.Пробег вручную Тесты с огурцами
Почему? Длинная история. Что-то связанное с загрузчиками классов и RoboGuice, это не очень важно, но оно накладывает ограничения на то, что я могу и чего не могу сделать.
Вот метод испытания:
@Test
public void runCucumberFeature() throws Exception {
Cucumber cucumber = new Cucumber(MyCucumberTest.class);
cucumber.run(new RunNotifier());
}
MyCucumberTest это класс я создал, и аннотированный как это:
//@RunWith(Cucumber.class)
@Cucumber.Options(format = {"pretty", "html:target/cucumber"}, strict=true)
public class MyCucumberTest {
// Empty, as required by Cucumber JVM
}
Почему я закомментировал @RunWith аннотацию? Потому что, если я этого не сделаю, тестовый бегун Cucumber проверит тест и запустит его, чего я не хочу, потому что я запускаю тест вручную.
Проблема в том, что вышеуказанное не работает. Похоже, что Cucumber находит файлы функций, он проверяет, что MyCucumberTest содержит @Givens и т. Д., Он даже распечатывает тест, как будто он его запускает.
Но это не так. Никакой код не выполняется внутри методов @Given, @When и @Then. Я не уверен, почему это так, но я имею смутное представление о том, что тестовый бегун JCM Cucumber не хочет выполнять код, потому что класс не аннотируется с помощью @RunWith.
Может ли кто-нибудь помочь?
Я не знал, что был @Manual тег. Это может помочь. Спасибо за предложение, это пока что самое лучшее :-) – user1283068
Теги определены пользователем - используйте теги, которые имеют смысл для вас. Вы можете применить несколько тегов к сценарию, что позволяет создавать тестовые пакеты для определенных целей (например, \ @Regression, \ @ Defect_54321 и т. Д.), –