Cucumber 无法解析为类型

Posted

技术标签:

【中文标题】Cucumber 无法解析为类型【英文标题】:Cucumber cannot be resolved to a type 【发布时间】:2018-12-11 14:11:31 【问题描述】:

我创建了一个 RunTest 类来使用 Cucumber 和 JUnit 运行我的测试场景。要在之前运行测试,我需要将 RunWith 类 (@RunWith) 导入到我的项目中,并将 Cucumber.class 作为参数传递。然后,类的 RunWith 参数识别更多传递给它的参数,不。 eclipse显示消息:

此行有多个标记 - 类无法解析为类型。 - Cucumber 无法解析为一个类型。 - 注解@RunWith 必须定义属性值

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

我的 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>

我的图书馆

【问题讨论】:

您尝试过导入 Cucumber 吗? 确实,尝试添加import cucumber.junit.Cucumber; 是的。我试过了,但eclipse显示消息:无法解决import cucumber.junit。我想我的项目中缺少一些 JAR 文件。 看看这是否有帮助:tutorialspoint.com/cucumber/cucumber_java_testing.htm 在您的pom.xml 中,您有依赖关系info.cukes:cucumber-jvm:pom:1.2.5,它不在您的任何屏幕截图的依赖关系列表中。如果你在命令行上运行mvn compile 会发生什么?我用你的 pom.xmlRunTest.java 创建了一个小项目,它编译得很好。 【参考方案1】:

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

Ctrl+Shift+O 是“组织导入”,将添加所有缺失的导入,删除所有未使用的导入,并对所有导入进行排序)。该命令还可以在 Source > Organize Imports 下找到。

【讨论】:

转到项目属性->Java 构建路径。在库选项卡中,检查“cucumber-junit-1.2.5.jar”是否在 Maven 依赖项中。如果没有,请添加它。 你好尼基尔·英戈尔。已添加依赖项。我用依赖的形象更新了我的问题。往上看。 嗨卡卡西,我认为你缺少一些依赖的罐子。在toolsqa.com/cucumber/download-cucumber-jvm-eclipse查看“选项3” 它为我创造了奇迹! 它对我也有魔力。 Ctrl+Shift+O【参考方案2】:

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

【讨论】:

【参考方案3】:

我从以下依赖项中删除了我的 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>

我已经完成了导入。

【讨论】:

【参考方案4】:

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

【讨论】:

【参考方案5】:

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

<!-- 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>

【讨论】:

【参考方案6】:

步骤1:鼠标悬停在错误显示上,类黄瓜无法解析为类型。 所以,手动编写import语句,错误就会消失。

导入黄瓜.api.junit.Cucumber;

第 2 步:从 pom.xml 文件中删除 cucumber-JUnit 依赖项的范围。

【讨论】:

【参考方案7】:

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

【讨论】:

它解决了这个特殊问题吗?【参考方案8】:

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

<!-- 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】:

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

所以我从 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】:

对我来说,通过删除 .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】:

我也遇到了同样的问题。我刚刚从 cucumber-junit 依赖项中删除了作用域部分,它对我来说效果很好。

【讨论】:

【参考方案12】:

即使您可能在 pom.xml

中有 cucumber-junit

确认在 Maven Dependencies 下你必须有 cucumber-junit

我有 1.2.6,但它不在 Maven 依赖项下,从答案中的一个 cmets 得到这个。

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

【讨论】:

【参考方案13】:

我已经删除了测试标签并且它起作用了。

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

【讨论】:

【参考方案14】:

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

【讨论】:

【参考方案15】:

我变了:

    <!-- 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>

【讨论】:

以上是关于Cucumber 无法解析为类型的主要内容,如果未能解决你的问题,请参考以下文章

不可转换的类型;无法将“io.cucumber.java.Scenario”转换为“cucumber.runtime.ScenarioImpl”

Constraint 无法解析为类型

toast 无法解析,activitynotfoundexception 无法解析为类型

无法解析为类型(jsp + eclipse)

EnableConfigServer 无法解析为类型

EnableWebSecurity 无法解析为类型