无法通过intellij run配置直接运行黄瓜功能

时间:2017-11-21 02:08:22

标签: java maven selenium-webdriver

我在运行一个非常基本的功能时获得此堆栈跟踪,该功能只需打开浏览器,导航到google.com并搜索某些字符串。

Exception in thread "main" java.lang.NoClassDefFoundError: 
    org/springframework/transaction/TransactionStatus
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.privateGetPublicMethods(Class.java:2902)
    at java.lang.Class.getMethods(Class.java:1615)
    at cucumber.runtime.java.MethodScanner.scan(MethodScanner.java:40)
    at cucumber.runtime.java.JavaBackend.loadGlue(JavaBackend.java:86)
    at cucumber.runtime.Runtime.<init>(Runtime.java:92)
    at cucumber.runtime.Runtime.<init>(Runtime.java:70)
    at cucumber.runtime.Runtime.<init>(Runtime.java:66)
    at cucumber.api.cli.Main.run(Main.java:35)
    at cucumber.api.cli.Main.main(Main.java:18)
Caused by: java.lang.ClassNotFoundException: 
    org.springframework.transaction.TransactionStatus
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 11 more

有人能告诉我这里缺少什么吗?

4 个答案:

答案 0 :(得分:6)

对于Intellij 2018.1,我猜是早期版本,默认情况下,“运行”配置获取 Glue 'cucumber.api.spring',您应该将其切换为'com.foreach.cuke'
转到“ 编辑配置”-“ 黄瓜”-胶水: com.foreach.cuke ...

答案 1 :(得分:2)

以下依赖项丢失。默认胶水cucumber.api.spring无法找到类事务,因此会引发错误。向您的pom.xml添加依赖项,它将解决您的问题

<dependency>
    <groupId>org.springframework</groupId>
     <artifactId>spring-tx</artifactId>
</dependency>

答案 2 :(得分:1)

您应该将“运行”配置切换为'com.foreach.cuke',而不是“ cucumber.api.spring”。.

转到'Edit Configurations'-'Cucumber'-Glue: com.foreach.cuke ...

答案 3 :(得分:0)

npm install <package_name> --save 而言,由于以下组件之间的不匹配而产生:

  1. NoClassDefFoundError 版本 - JDK - 将Solution版本更新至最新版本。
  2. JDK 版本 - JUnit - 让Solution版本与JUnit版本保持同步。
  3. cucumber 版本 - Selenium - 将 Solution 版本更新为最新发布版本
  4. Selenium 版本 - WebDriver Binary - 将 Solution 版本更新为最新发布版本
  5. WebDriver 版本 - Web Browser Binary - 将 Solution 版本更新为最新发布版本