首页 > 解决方案 > 由于解析 Cucumber 选项时出错,无法在 Cucumber Framework 中创建测试 Runner 类

问题描述

我正在为测试自动化创建一个 Cucumber 框架。我面临的问题是我无法在 Test Runner 类中解析 CucumberOptions 的导入

最初我尝试使用现在已弃用的导入 cucumber.api 的建议。然后我去了官方 Cucumber 网站查找进口,但他们也没有解决问题。

不推荐使用的导入:

import cucumber.api.CucumberOptions;

从黄瓜官方网站导入:

import io.cucumber.junit.Cucumber;
import io.cucumber.junit.CucumberOptions;

添加上述导入后,我面临错误:

The import io.cucumber.junit cannot be resolved

下面是 Test Runner 类中的代码:

@RunWith(Cucumber.class)

@CucumberOptions(features = {"Features"}, glue= {"stepDefinitions"}, dryRun=true)

public class TestRunner {

}

以下是具有所有依赖项的 POM 结构:

<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>CucumberFramework</groupId>
  <artifactId>CucumberFramework</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>AmazonCucumberFramework</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
  <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.6</version>
</dependency> 
  <!-- https://mvnrepository.com/artifact/cobertura/cobertura -->
<dependency>
    <groupId>cobertura</groupId>
    <artifactId>cobertura</artifactId>
    <version>1.8</version>
</dependency>
  <!-- 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/io.cucumber/cucumber-java8 -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-java8</artifactId>
    <version>4.7.2</version>
</dependency>

<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-core -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-core</artifactId>
    <version>4.7.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-java -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-java</artifactId>
    <version>4.7.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>4.7.2</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/org.hamcrest/hamcrest-core -->
<dependency>
    <groupId>org.hamcrest</groupId>
    <artifactId>hamcrest-core</artifactId>
    <version>2.1</version>
    <scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.141.59</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.cucumber/gherkin -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>gherkin</artifactId>
    <version>4.1.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-html -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-html</artifactId>
    <version>0.2.7</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mockito/mockito-all -->
<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-all</artifactId>
    <version>1.10.19</version>
    <scope>test</scope>
</dependency>

</dependencies>
</project>

我想知道是否需要添加任何新的依赖项。我记得在 cucumber.api 被弃用之前曾在黄瓜上工作过,它曾经工作得很好。

标签: selenium-webdrivercucumberbddcucumber-jvmcucumber-junit

解决方案


嗯,你可以试试mvn clean,然后mvn install -U在终端上,这个时候你不用IDE,确定问题不在IDE,用终端。

示例pom.xmlhttps ://github.com/osvaldjr/easy-cucumber/blob/master/pom.xml

进口:cucumber-java, cucumber-junit, cucumber-spring


推荐阅读