Java 如何在IntelliJ中将目录转换为包

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() {

我正在建立一个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() {
    // 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和资源中,您应该具有相同的目录结构请参见我的结构!