Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在intellij中设置黄瓜_Java_Maven_Intellij Idea_Cucumber_Gherkin - Fatal编程技术网

Java 在intellij中设置黄瓜

Java 在intellij中设置黄瓜,java,maven,intellij-idea,cucumber,gherkin,Java,Maven,Intellij Idea,Cucumber,Gherkin,我正在转动轮子,试图在intellij中运行测试。我正在使用黄瓜骨架项目的基本框架 我还更新了我的POM文件,如下所示: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schem

我正在转动轮子,试图在intellij中运行测试。我正在使用黄瓜骨架项目的基本框架

我还更新了我的POM文件,如下所示:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
     http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>MaritProject</groupId>
    <artifactId>MaritProject</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-java</artifactId>
            <version>2.3.1</version>
        </dependency>

        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-junit</artifactId>
            <version>2.3.1</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-java -->
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-java</artifactId>
            <version>1.2.5</version>
        </dependency>

     </dependencies>
    </project>

4.0.0
海洋工程
海洋工程
1.0-快照
1.8
1.8
黄瓜
黄瓜爪哇
2.3.1
黄瓜
黄瓜刺柏
2.3.1
朱尼特
朱尼特
4.12
信息杯
黄瓜爪哇
1.2.5
环境:我使用的是jdk 1.8,并且已在设置中选择了jdk。我还访问了设置、插件并安装了Cucumber for Java插件。我在Windows10上

要求:我想运行功能文件的基本测试,在我的runner类中没有任何内容的情况下,应该告诉我零测试正在工作,并给我一个步骤定义文件的基本输出,以便剪切和粘贴,并开始充实细节。然后,我想编写并执行runner文件

问题:但当我运行此功能文件时,或者什么都没有发生,或者当我填写一些编辑配置时,我得到运行时出错:“未命名:未定义模块”。我正在学习一些视频教程,其中“运行输出”窗口的外观与我之前的大不相同,因此我将IntellJ升级到了最新版本2017.3.5

我已经检查了我的目录上的标记,看起来Java在main下被正确标记为Sources,在src/test下被标记为testsources,在main下被标记为resources,在test下被标记为resources root。这可能是我所需要的全部,正如视频中所说,我所做的甚至比这还要少。当我在项目目录中运行mvn clean测试时,我获得了构建成功

但是,由于我升级IntelliJ是为了纠正另一个问题,现在我无法运行任何功能或类文件。它希望我先编辑配置。这些配置包括主类、粘合、功能或文件夹路径、VM选项、程序参数、工作目录、环境变量和模块的类路径。以前我尝试运行时,此窗口不存在。我不知道该在这些输入框中放些什么,谷歌的搜索结果到目前为止毫无用处。我怎么知道我的主要课程是什么,或者胶水是什么?Glue看起来像一个必填字段,但我不知道哪个路径对应于Glue。我猜我的工作目录就是存储文件的地方。我的机器上保存了java和maven home环境变量,但intellij中是否也需要它们?

请删除

<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-java -->
<dependency>
    <groupId>info.cukes</groupId>
    <artifactId>cucumber-java</artifactId>
    <version>1.2.5</version>
</dependency>

信息杯
黄瓜爪哇
1.2.5

由于pom.xml中目前有两个cucumber版本,因此我在使用这些东西时遇到了一些问题。对于此配置,请执行以下操作:

<properties>
    <java.version>1.8</java.version>
    <junit.version>4.12</junit.version>
    <cucumber.version>1.2.5</cucumber.version>
    <maven.compiler.version>3.3</maven.compiler.version>
</properties>
<dependencies>
    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-java8</artifactId>
        <version>${cucumber.version}</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>${cucumber.version}</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
    </dependency>
</dependencies>

1.8
4.12
1.2.5
3.3
信息杯
黄瓜-java8
${cumber.version}
测试
信息杯
黄瓜刺柏
${cumber.version}
测试
朱尼特
朱尼特
${junit.version}
测试
请注意,我在内部指定了版本,它们也可以内联提供


除此之外,您必须指定胶水。这是stepDefinition文件所在的目录。您的胶水和特性等可以在testrunnerclass或类似的东西中指定。但是请注意,该类的名称中必须包含“Test”。像TestRunner或CukeRunTest这样的东西就可以了。RunnerClass将无法识别。

有关运行配置参考,请参阅。您的依赖项同时具有
io.cucumber
info.cukes
版本的
cucumber java
。只使用后者。如果问题仍然存在,请与他人分享。谢谢,为了简洁起见,我确实尝试遗漏了一些信息。一个是我尝试了所有这些不同的POM配置,不知道哪个是正确的。了解info.cukes是正确的帮助。此外,我还访问了jetbrains网站,并试图从该网站猜测主要课程是什么。它推荐cucumber.cli.Main,但这并不适用,所以我使用了browse,除了RunnerClass之外的所有内容都变灰了。我试过Runner类,它说RunnerClass是不可接受的。老实说,我不确定“这个类是从jar存档中获取的..等等”是什么意思。我还尝试了/src/test/java/StepDefinitions/RunnerClass、StepDefinitions/RunnerClass、java/StepDefinitions/RunnerClass等。如果它不是一个带有主类的普通java项目,我不确定它问的是什么。info实际上破坏了我的项目,当我把它改成io cucumber时,它起作用了