此错误
当我尝试使用IntelliJ IDEA从Testng.xml文件运行测试时,会出现NoClassDefFoundError:org / testng / TestNG
。
逐个运行我的测试,以及运行指向testng.xml
的整个gradle项目,如grade core-test:test
(在我的项目中,我使用的是Appium + IntelliJ + TestNG)
但是当我使用IntelliJ运行testng时,我在按下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
答案 0 :(得分:5)
我在此处找到了一个解决方案: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的重大改变。
它对我有用。
答案 1 :(得分:3)
答案 2 :(得分:1)
答案 3 :(得分:0)
请按照以下步骤操作:
在项目的Java构建路径中添加TestNG
库。
右键单击project
,然后依次单击-> Build path -> Configure build path -> Libraries tab -> Add library -> Choose TestNG
和apply
。
创建一个testNG类并运行testng.xml
文件,它将起作用。
右键单击该类中的项目-> testNG-> create testNG class -> give the details
和create one method
,然后运行文件。
答案 4 :(得分:0)
必须将模板TestNG更改为使用Test Kind of Suite而不是Class,然后将其设置为整个项目。 showing where i changed the project to Whole Project
答案 5 :(得分:0)
按照步骤- 1.从Java构建路径添加TestNG库-转到项目->右键单击->属性-> Java构建路径->第三选项库。
答案 6 :(得分:0)
尝试了本文中提到的所有答案,此外,我还必须从“启动之前:激活工具窗口以使其正常工作”部分中删除“构建”:
答案 7 :(得分:0)
我的有点不同,使用 Allure 通过 TestNG 生成报告。在 gradle.build 文件的 Allure 部分,我需要从 2.8.1 -> 2.13.8 升级。出于某种原因,2.8.1 导致 TestNG 的类未找到异常,需要对它们进行一些日志记录改进。
def allureVersion = "2.13.8"
allure {
autoconfigure = true
aspectjweaver = true
version = allureVersion
clean = true
useTestNG {
version = allureVersion
}
}