cucumber.runtime.cucumberException:无法实例化类CucumberTestDefinition.CucumberStepDefinition

时间:2017-06-15 18:21:02

标签: java maven selenium-webdriver cucumber

我已经完成了之前所有与之相关的StackOverflow问题。这篇文章很长,请耐心等待。黄瓜项目中的文件夹按如下顺序排列:

-src/main/java

-src/main/resources

-src/test/java

      -|CucumberRunner (package)
                 -|CucumberTestRunner.java

      -|CucumberTestDefinition (package)

                 -|CucumberStepDefinition.java
-src/test/resources

-CucumberFeaturesFolder

        -|CucumberFeatureFile.feature

如果以上顺序对您没有意义,这是项目文件夹排列的图片。 Order of project folders inside the project

我的pom.xml添加了以下依赖项(不再依赖):

<dependency>
   <groupId>org.seleniumhq.selenium</groupId>
   <artifactId>selenium-java</artifactId>
   <version>3.4.0</version>
</dependency> 
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.11</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>info.cukes</groupId>
  <artifactId>cucumber-java</artifactId>
  <version>1.2.2</version>
</dependency>
<dependency>
  <groupId>info.cukes</groupId>
  <artifactId>cucumber-junit</artifactId>
  <version>1.2.2</version>
  <scope>test</scope>
</dependency>

我的CucumberTestRunner.java文件包含以下内容:

package CucumberRunner;
import org.junit.runner.RunWith;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;

@RunWith(Cucumber.class)
@CucumberOptions(
    features = "CucumberFeaturesFolder/CucumberFeatureFile.feature", 
    glue = {"src/test.java/CucumberTestDefinition"}
    )
public class CucumberTestRunner {}

我尝试运行CucumberFeatureFile.feature时遇到的错误如下:

  

cucumber.runtime.CucumberException:无法实例化类CucumberTestDefinition.CucumberStepDefinition

现在,在阅读StackOverflow上提到的类似帖子后,我尝试更改黄瓜单元版本cucumber-java从1.2.2到1.2.0也导致了一个错误但不同的错误:

  

线程中的异常“main”cucumber.runtime.CucumberException:未找到后端

2 个答案:

答案 0 :(得分:1)

更改

glue = {"src/test.java/CucumberTestDefinition"}

glue = {"src/test/java/CucumberTestDefinition"}

答案 1 :(得分:1)

确保Java版本与Cucumber依赖项以及POM.xml中添加的其他依赖项兼容。早些时候我尝试使用JDK 7,但是在更改为JDK 8之后,该错误/异常在运行时不再可见,并且能够成功执行测试。