我的文件在以下结构src \ test \ java \ login.feature
中为Java时正常工作。当创建名称保留在以下结构src / test / java / feature / Login.feature
中的功能的文件夹时,该文件夹不会执行。
import org.junit.runner.RunWith;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
@RunWith(Cucumber.class)
@CucumberOptions(features = {"src/test/java/feature"},
plugin = {"json:target/cucumber.jason"},
glue = "src/test/java")
public class Runner {
}
最佳答案
您正在使用较旧的Cucumber版本。其路径扫描不理想。
除了升级外,建议您为项目使用标准的Maven布局。这意味着功能文件是应放置在资源目录中的资源。例如:
|- src/main/java/com/example
| |- App.java
|- src/test/java/com/example
| |- StepDefinitions.java
| |- RunCucumberTest.java
|- src/test/resource/com/example/
| |- single.feature
| |- rule.feature
| |- outline.feature
这使您可以将类路径uris用于胶水的功能部件和包装名称。
@CucumberOptions(
features = {"classpath:com/example"},
glue = "com.example"
)
并且,在更高版本的Cucumber中使用此布局时,您也可以从
features
中省略glue
和CucumberOptions
,因为默认情况下,Cucumber会搜索RunCucumberTest
类的包以查找胶水和特征。关于java - 在新目录中执行功能文件时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61514030/