Подтвердить что ты не робот

Аннотации параметров огурца

В огурце-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://или что-то в этом роде), но я не могу найти никакой информации об этом в документации.

4b9b3361

Ответ 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"

Не знаю, почему они разные, но, похоже, это работает для меня.