2013-07-05 3 views
13

В огурце-jvm javadocs указано, что цель клея - указать местоположение шагов и крючков. Однако, похоже, это не работает для меня. Допустим, у меня есть мои функции в каталоге a и определения моего шага в каталоге b. ЗатемАннотации опций огурца

@Cucumber.Options(
     features= "directory_a", 
      glue="directory_b" 
) 

будет загружать свои файлы функций из directory_a, но он не загружает мои определения шага от directly_b. Однако, если я использую

@Cucumber.Options(
     features= {"directory_a", "directory_b"} 
) 

тогда мои функции от directory_a загружены, и мои определения шага от directory_b также взяли. Что именно я хочу, однако, я не понимаю, почему первый не работает? Я предполагаю, что это имеет какое-то отношение к этому, ожидая, что URI будет отформатирован по-другому (может быть, мне нужно добавить classpath: // или что-то в этом роде), но я не могу найти никакой информации об этом в документации.

+2

@ Cucumber.Options теперь устарел, используйте [CucumberOptions] (http://cukes.info/api/cucumber/jvm/javadoc/cucumber/api/CucumberOptions.html) – Geert

+0

Я бы назвал этот вопрос устаревшим. –

ответ

15

Я успешно использовал что-то вроде:

@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[] поэтому, возможно, не будут работать «хорошо», если вы не даете его список с одним значением. Попробуйте glue={"directory_b"} и посмотрите, что будет с вами.

+1

Непонятно из приведенного выше примера или документации, но клей принимает только имена пакетов. –

3

я тоже была эта проблема ... и до сих пор кажется быть, что:

«особенности» ищет файловой системы пути в:

features = "src/foo/bar" 

в то время как «клей» ищет имя пакета:

glue = "foo.bar" 

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

+0

Ответ на вопрос, почему они отличаются друг от друга, - это то, что функции загружаются из каталога, например каталога ресурсов. Клей загружает фактические скомпилированные классы из указанного пакета * И * все подпакеты рекурсивно, независимо от того, где они находятся в файловой системе. – iZian

 Смежные вопросы

  • Нет связанных вопросов^_^