NoClassDefFoundError: org/testng/TestNG

2022-09-02 12:35:34

此错误

NoClassDefFoundError: org/testng/TestNG

当我尝试使用IntelliJ IDEA从Testng.xml文件运行测试时出现。一个接一个地运行我的测试可以完美地运行,并运行整个gradle项目,该项目指向,例如testng.xmlgrade core-test:test

( 在我的项目中,我使用的是 Appium + IntelliJ + TestNG )

但是当我运行testng时.xml使用IntelliJ,我在按Run后立即收到此消息:

Exception in thread "main" java.lang.NoClassDefFoundError: org/testng/TestNG
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:120)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)

Caused by: java.lang.ClassNotFoundException: org.testng.TestNG
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 18 more

答案 1

我在这里找到了一个解决方案:https://intellij-support.jetbrains.com/hc/en-us/community/posts/206597869-Cannot-launch-NGTest-runner-in-IntelliJ-IDEA-2016-1

我通过在TestNG“运行/调试配置”的“配置”选项卡下选择“在整个项目中”(我选择了“在单个模块中”)来使其工作。

但是,先前的配置在IntelliJ IDEA 15中起作用,因此对我来说,它似乎可能来自较新IDE的破坏性更改。

它对我有用。


答案 2

添加屏幕截图以帮助贾斯汀在上面的答案。默认值为“在单个模块中”,需要更改为“在整个项目中”。


推荐