Аннотации параметров огурца
В огурце-jvm javadocs говорится, что целью элемента клея является указание расположения шагов и крючков. Однако, похоже, это не работает для меня. Допустим, у меня есть мои функции в каталоге a и определения моего шага в каталоге b. Тогда,
@Cucumber.Options(
features= "directory_a",
glue="directory_b"
)
загрузит мои файлы функций из каталога_a, но он не загружает определения моего шага из direct_b. Однако, если я использую
@Cucumber.Options(
features= {"directory_a", "directory_b"}
)
тогда мои функции из directory_a загружаются, а также определяются мои определения шагов из каталога_b. Что именно я хочу, однако, я не понимаю, почему первый не работает? Я предполагаю, что это имеет какое-то отношение к ней, ожидая, что URI будет отформатирован по-разному (возможно, мне нужно добавить classpath://или что-то в этом роде), но я не могу найти никакой информации об этом в документации.
Ответы
Ответ 1
Я успешно использовал что-то вроде:
@RunWith(Cucumber.class)
@Cucumber.Options(
//this code will only look into "features/" folder for features
features={"classpath:features/"},
glue = { "com.mycompany.cucumber.stepdefinitions", "com.mycompany.cucumber.hooks" },
format = { "com.mycompany.cucumber.formatter.RuntimeInfoCatcher", "json:target/cucumber.json" },
tags = { "@working" }
)
public class CucumberStarterIT {
}
Глядя на документ http://cukes.info/api/cucumber/jvm/javadoc/cucumber/api/junit/Cucumber.Options.html, он указывает параметры типа String[]
, поэтому, возможно, он не будет работать "хорошо", t дать ему список с одним значением. Попробуйте glue={"directory_b"}
и посмотрите, что будет с вами.
Ответ 2
У меня тоже была эта проблема... и до сих пор кажется, что:
"функции" ищут путь файловой системы:
features = "src/foo/bar"
тогда как "клей" ищет имя пакета :
glue = "foo.bar"
Не знаю, почему они разные, но, похоже, это работает для меня.