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

amr*_*kur 3 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
Run Code Online (Sandbox Code Playgroud)

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

小智 7

的IntelliJ 2018.1我猜对早期版本中,默认情况下运行配置获取胶水 “cucumber.api.spring”,您应关闭它“com.foreach.cuke”
转到“ 编辑配置 ” - “ 黄瓜 ” - 胶: com.foreach.cuke ...

  • 这可以在默认值中设置:“编辑配置...”&gt;“模板”&gt;“Cucumber java”并为您的项目设置正确的胶水。 (2认同)

小智 6

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

<dependency>
    <groupId>org.springframework</groupId>
     <artifactId>spring-tx</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)


Deb*_*anB 0

就目前NoClassDefFoundError而言,这是由于以下组件之间的不匹配造成的:

  1. JDKversion - Solution- 保持JDK版本更新到最新版本。
  2. JUnitversion - Solution- 保持JUnit版本与版本同步cucumber
  3. Seleniumversion - Solution- 将版本更新Selenium到最新发布版本。
  4. WebDriver Binaryversion - Solution- 将版本更新WebDriver到最新发布版本。
  5. Web Browser Binaryversion - Solution- 将版本更新Web Browser到最新发布版本。