【问题标题】:Java: package cucumber.api.junit does not existJava:包 cucumber.api.junit 不存在
【发布时间】:2017-08-12 22:57:03
【问题描述】:

我一直在努力让它发挥作用。

我想设置一个测试运行器类like so

但是我得到了这个错误:

错误:(3, 26) java: 包 cucumber.api.junit 不存在
错误:(10, 10) java: 找不到符号
符号:黄瓜类

类看起来像:

package nl.prvgld.sigma.aanvraagtitels.testutil;

import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith;

@RunWith(Cucumber.class)
public class RunFeature {
}

Pom.xml 看起来像:

<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/maven-v4_0_0.xsd">
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
  <modelVersion>4.0.0</modelVersion>
  <groupId>nl.prvgld.sigma.aanvraagtitels</groupId>
  <artifactId>Aanvraagtitels</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>Aanvraagtitels</name>
  <url>http://maven.apache.org</url>
  <dependencies>
      <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
      <dependency>
          <groupId>org.seleniumhq.selenium</groupId>
          <artifactId>selenium-java</artifactId>
          <version>3.2.0</version>
      </dependency>
    <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-java8</artifactId>
        <version>1.2.5</version>
    </dependency>
      <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-core -->
      <dependency>
          <groupId>info.cukes</groupId>
          <artifactId>cucumber-core</artifactId>
          <version>1.2.5</version>
          <scope>test</scope>
      </dependency>
      <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-junit -->
      <dependency>
          <groupId>info.cukes</groupId>
          <artifactId>cucumber-junit</artifactId>
          <version>1.2.5</version>
      </dependency>

      <!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
      <dependency>
          <groupId>com.microsoft.sqlserver</groupId>
          <artifactId>mssql-jdbc</artifactId>
          <version>6.1.0.jre8</version>
      </dependency>
      <dependency>
          <groupId>com.smartbear.readyapi.testserver.cucumber</groupId>
          <artifactId>testserver-cucumber-core</artifactId>
          <version>1.0.0</version>
          <scope>test</scope>
      </dependency>


  </dependencies>
</project>

所有类都在 Test 文件夹下。 我一直在这里查看一些相关问题并尝试了解决方案,例如从 Pom 中删除测试,并确保 Pom 中有 junit、cucumber-junit、cucumber-java8 和 cucumber-core。

我正在使用 Intellij。

非常感谢任何正确方向的帮助!

干杯!

【问题讨论】:

    标签: java maven intellij-idea junit cucumber


    【解决方案1】:

    通过检查,一切看起来都很好。但很明显,它并没有像你期望的那样工作。

    你在用IDEA编译和用Maven编译的时候会出现同样的错误吗?

    首先,我会从 Cucumber 团队克隆一个入门项目并让它工作。以后扩展它以包含您需要的东西要容易得多。克隆 https://github.com/cucumber/cucumber-java-skeleton 并使用 Maven 构建它

    mvn clean install
    

    预计开箱即用。

    有了可行的解决方案,朝着您真正想要的项目迈出一小步。

    【讨论】:

    • 谢谢托马斯。我已经有大约 20 个类(对 UI 建模和一些辅助工具),所以按照你的建议去做可能是最好的主意,但它需要工作。我希望有一个更快的解决方案。我将首先尝试使用 maven 进行编译。我没有那样做。是同样的 mvn clean install 吗?
    • 编辑:我发表了评论,但它没有意义……我发现……待续!
    • 好吧:我下载了。将其更改为 java8。当我看到它仍然有效时,根据this answer 重命名了项目。然后我把所有的包和类放在他们的位置上,它就像一个魅力!不知何故,颜色也不同,所以我怀疑我的项目的初始设置有些问题。无论如何,非常感谢!
    • 我很高兴听到它对您有用。我想你有一个盖尔定律的案例。更多信息在这里:thinkcode.se/blog/2015/02/28/galls-law
    【解决方案2】:

    我不知道您是否已经解决了您的问题,但您可以通过从 pom.xml 文件中删除范围标签来快速修复它。对您遇到问题并且应该可以正常工作的所有依赖项执行此操作。

    干杯, 呵呵

    【讨论】:

    • 谢谢。这已通过上述解决方案解决。我记得尝试过你的想法,但在那种情况下不起作用。不知何故,这个项目被打破了。但无论如何,已经解决了。感谢您的回答!
    • 您也可以考虑将导入“cucumber.api.junit”的类放入测试文件夹。那是我使用 TypeRegistryConfigurer 的问题:cucumber.io/docs/cucumber/configuration/#recommended-location
    【解决方案3】:

    更改导入。

    代替: import cucumber.api.junit.Cucumber;

    使用import io.cucumber.junit.Cucumber;

    【讨论】:

      猜你喜欢
      • 2011-11-13
      • 1970-01-01
      • 2019-09-19
      • 2019-01-11
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多