我有一个使用 maven 构建的 java 项目。
我有多个包,基于不同功能的功能文件。项目测试结构如下。
src
->test
->java
->com
->usercreation
TestStepDef.java
->uservalidation
TestStepDef.java
->resources
->usercreation
usercreation.feature
->uservaliation
uservalidatin.feature
我只有一个 RunCukesTest.java 文件
@RunWith(Cucumber.class)
@CucumberOptions(format = { "html:target/cucumber-html-report",
"json:target/cucumber-json-report.json" },
features = "src/test/resources/",
glue = "??????",
tags = {"~@ignore"}
)
public class RunCukesTest {
}
在这种情况下,它运行我所有的功能文件。但它无法找到我对该功能的特定步骤定义。所以我必须将胶水选项设置为“com.usercreation”。但是,如果我在运行用户验证功能文件时这样做,它将无法获取适当的步骤定义。在我的用例中,我不希望两个步骤 def 文件都在同一个包中,因为它们有许多具有不同功能的步骤。
有没有一种可能的方法,我可以根据功能文件正在运行的包名称动态地提供粘合选项。或者我错过了这个项目的任何其他方法。