cucumber-jvm
javadocs表示,粘合元素的目的是指定分步和钩子的位置.但是,这对我来说似乎不起作用.让我说我有我的功能在目录a,我的步骤定义在目录b.然后,
@Cucumber.Options( features= "directory_a",glue="directory_b" )
将从directory_a加载我的功能文件,但是它没有从direct_b加载我的步骤定义.但是,如果我使用
@Cucumber.Options( features= {"directory_a","directory_b"} )
那么我加载了来自directory_a的功能,并且我们也从中获取了来自directory_b的步骤定义.这正是我想要的,但是,我不明白为什么前者不工作?我猜测这与它期望URI的格式有所不同(也许我需要预先添加类路径//或类似的东西),但是在文档中找不到任何信息.
解决方法
我已经成功地使用了像:
@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”},看看会发生什么.