Я следил за книгой огурцов для Java, и этот пример, над которым я работаю, очень похож на то, что было в главе 2. Он находится в строке cmd, поскольку я не хочу включать его в IDE на данном этапе.
Feature: practice test
Scenario Outline: not CheckingOut bananas
given abc
when place holder2
then place holder3
Шаги теста:
public class SimpleTest {
@Given("^abc")
public void part1() throws Exception {
System.out.println("part 1");
throw new Exception("an exceptoin");
}
@When("place holder2")
public void part2(){
System.out.println("part 2");
}
@Then("place holder3")
public void part3() {
System.out.println("part 3");
}
}
Я пробовал "abc", "^ abc", "give abc" ... на @Given
Я управляю этим с помощью следующего файла bat, определения шагов компилируются, и файл класса присутствует. С помощью опции -g (glue) я понимаю, что имя пакета является значением аргумента, поэтому я сделал это как можно проще, но я получаю 0 найденных сценариев. Файл bat прост:
echo cucumber compile and execution
javac -cp "lib/*" step_definitions/SimpleTest.java
javac -cp "lib/*;web/WEB-INF/lib/*" test/java/xxxxx/zzzz/referral/out/batch/RunCukesTest.java
java -cp "lib/*;web/WEB-INF/lib/*;.;test/java/*" cucumber.api.cli.Main -p pretty -g step_definitions features
стабильно получаю следующие результаты:
Feature: practice test
Scenario Outline: not CheckingOut bananas ←[90m# bogus.feature:2←[0m
given abc
when place holder2
then place holder3
0 Scenarios
0 Steps
0m0.000s
Очевидно, что интерфейс командной строки находит файл функций, но скомпилированные определения шагов не обнаруживаются. Сомневаюсь, что это проблема классового пути. Я предоставил дополнительные каталоги и переместил файл определения шага. CLI не берет файл функций и не сопоставляет его с скомпилированными определениями. Спасибо заранее. Много раз набирая эти вопросы, решение приходит, но на этом его нет.
Если файлы * .feature необходимы для запуска огурца и они должны соответствовать определению скомпилированного шага, даже если junit подключается к средству выполнения теста cucumber.class, книга могла бы оставить меньше неопределенности. Форум для книги выглядел тонким. Наверное нужно зайти на github или где-то там исходный код.