黄瓜无法解析为一种类型

时间:2018-07-03 09:53:20

标签: java eclipse selenium cucumber

我创建了一个RunTest类,以将Cucumber与JUnit一起运行我的测试方案。为了之前运行测试,我需要将RunWith类(@RunWith)导入到我的项目中,并将Cucumber.class作为参数传递。然后,该类的RunWith参数识别出传递给它的更多参数,否。 蚀显示消息:

  

此行有多个标记   -类无法解析为类型。   -黄瓜不能解析为一种类型。   -注释@RunWith必须定义属性值

我正在使用Maven来组织我的JARS文件。 以下是代码和错误屏幕。

enter image description here enter image description here

我的POM.XML

  

    <!-- https://mvnrepository.com/artifact/junit/junit -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>


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


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

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

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

</dependencies>

我的图书馆 enter image description here

14 个答案:

答案 0 :(得分:2)

导入cucumber.api.junit.Cucumber类。看来您使用的是Eclipse IDE,因此可以使用Ctrl+Shift+o(字母'o'不为零)快捷方式导入类。

({Ctrl+Shift+O是'Organise Imports',将添加所有缺失的进口,删除所有未使用的进口,并订购所有进口)。该命令也位于“源”>“组织导入”下。

答案 1 :(得分:1)

只需执行Ctrl + Shift + T并键入RunWith,即可在解决maven依赖关系后检查jar是否正确导入到您的工作空间中。

答案 2 :(得分:1)

步骤1:鼠标悬停在错误显示上,黄瓜类无法解析为一种类型。   因此,手动编写import语句,错误将消失。

导入cumul.api.junit.Cucumber;

第2步:从pom.xml文件中删除适用于黄瓜JUnit依赖关系的范围。

答案 3 :(得分:1)

我已经删除了测试标签,并且可以正常工作。

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

答案 4 :(得分:0)

我从以下依赖项中删除了POM.xml文件:

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

然后我添加了依赖项:

<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>3.0.2</version>
        <scope>test</scope>
    </dependency>

完成导入操作。

enter image description here

答案 5 :(得分:0)

我遇到了同样的问题。我正在Eclipse中使用Maven项目。我的问题似乎是我使用的JRE版本。我的Maven项目都有一个旧的J2SE-1.5,我在Eclipse中切换到1.8,问题就消失了。希望这会有所帮助!

答案 6 :(得分:0)

如上所述,添加以下依赖项解决了我的问题:

<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>3.0.2</version>
        <scope>test</scope>
    </dependency>

答案 7 :(得分:0)

从“ mvnrepository”下载了所有最新的jar Maven依赖项。这对我有用。

答案 8 :(得分:0)

请添加此依赖项并删除旧的依赖项。 它对我有用。

<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>3.0.2</version>
    <scope>test</scope>
</dependency>

答案 9 :(得分:0)

我在IntelliJ想法中也遇到了同样的问题,当我检查导入的库时,就像下面的屏幕截图一样。

screenshot

所以我从pom文件的导入中删除了作用域标记。然后它起作用了。

更早

<dependency>
    <groupId>info.cukes</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>1.2.5</version>
    <scope>test</scope>
</dependency>

修复

<dependency>
    <groupId>info.cukes</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>1.2.5</version>
</dependency>

现在一切正常

答案 10 :(得分:0)

对我来说,删除.m2 / repository可以解决相同的问题,请按如下所示重新启动具有依赖项的IDEA:

${cucumber.version} = 4.8.0

    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>${cucumber.version}</version>
    </dependency>

    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>${cucumber.version}</version>
    </dependency>

    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>${cucumber.version}</version>
    </dependency>

希望,它也对您有用。

答案 11 :(得分:0)

即使您可能在 pom.xml

中有 cucumber-junit

确认在 Maven依赖项下,您必须具有 cucumber-junit

enter image description here

我有1.2.6,但它不是Maven依赖项,请从答案中的一个注释中得到。

  <dependency>
  <groupId>info.cukes</groupId>
  <artifactId>cucumber-junit</artifactId>
   <version>1.2.5</version>
   <scope>test</scope>
   </dependency>

答案 12 :(得分:0)

我更改了:

    <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>6.1.2</version>
        <scope>test</scope>
    </dependency>

收件人:

    <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>6.2.0</version>
    <scope>test</scope>
</dependency>

It Worked...

我的依存关系列表:

<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>6.2.0</version>
    <scope>test</scope>
</dependency>

<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-jvm-deps -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-jvm-deps</artifactId>
    <version>1.0.6</version>
    <scope>provided</scope>
</dependency>
  
   <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-java -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-java</artifactId>
    <version>6.2.0</version>
</dependency>
  <!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13</version>
    <scope>test</scope>
</dependency>

答案 13 :(得分:-1)

我也遇到过同样的问题。尝试了多种方法,但这对我有所帮助
import cucumber.api.junit.Cucumber;