Java 如何在IntelliJ中将目录转换为包
我正在建立一个Cucumber+Java项目,项目结构如下: 我的配置正确地映射了主类、feature文件夹,glue映射到stepdefs 但是,在尝试运行测试时,我会收到Cumber的步骤未定义消息:Java 如何在IntelliJ中将目录转换为包,java,intellij-idea,cucumber,cucumber-jvm,Java,Intellij Idea,Cucumber,Cucumber Jvm,我正在建立一个Cucumber+Java项目,项目结构如下: 我的配置正确地映射了主类、feature文件夹,glue映射到stepdefs 但是,在尝试运行测试时,我会收到Cumber的步骤未定义消息: Step undefined You can implement missing steps with the snippets below: @Given("user is on the homepage") public void user_is_on_the_homepage() {
Step undefined
You can implement missing steps with the snippets below:
@Given("user is on the homepage")
public void user_is_on_the_homepage() {
// Write code here that turns the phrase above into concrete actions
throw new io.cucumber.java.PendingException();
}
我注意到Steps.java文件中的类名突出显示,并抱怨Step definition类必须在命名包中:
我尝试将包stepdefs添加到文件的顶部,但似乎不起作用。stepdefs将加下划线,并注意包名“stepdefs”与文件路径不对应
更新:
根据@Tashkhhisi的一些建议,这里是我的新项目结构:
下面的第一个链接对于cucumber入门非常有用,我建议您按照该链接进行更好的解释
但这里应该是您的目录结构
我建议您使用传统名称,但如果您决心这样做,请执行以下操作:
将stepsdef标记为测试源根目录
更新:
主目录必须是test而不是main
运行测试的@runWithCumber.class注释在哪里
为什么不使用下面的命令来创建最佳目录结构
在java和resource中,您应该具有相同的目录结构
mvn archetype:generate \
"-DarchetypeGroupId=io.cucumber" \
"-DarchetypeArtifactId=cucumber-archetype" \
"-DarchetypeVersion=5.6.0" \
"-DgroupId=hellocucumber" \
"-DartifactId=hellocucumber" \
"-Dpackage=hellocucumber" \
"-Dversion=1.0.0-SNAPSHOT" \
"-DinteractiveMode=false"
目录必须位于源文件夹中才能成为包。如果您将父文件夹标记为源目录并将其变为蓝色,则应将其检测为包您是对的!但我仍然从Cucumber得到了未定义的场景。我认为.feature文件应该在resources目录下,顺便说一下,您可以使用maven原型,它为您创建了最佳的目录结构。请点击此链接:@Tashkhishi Feature在参考资料中,我按照目录结构的提示进行了操作,但仍然没有成功。请您放置新的目录结构并完成错误,您可以看到新目录结构的更新操作。已经给出了完整的错误。步骤未定义。。。在这之后,只有跳过的步骤,没有更多,之前也没有。如何在代码中运行测试?没有带有@RunWithCucumber.class注释的类,在java和资源中,您应该具有相同的目录结构请参见我的结构!