NoClassDefFoundError: org/testng/TestNG
NoClassDefFoundError: org/testng/TestNG
这个错误
NoClassDefFoundError: org/testng/TestNG
当我尝试使用 IntelliJ IDEA 从 Testng.xml 文件 运行 我的测试时出现 。
运行我的测试一个接一个地运行,与 运行 整个 gradle 项目一样完美,它指向 testng.xml
,例如 grade core-test:test
(在我的项目中,我使用的是 Appium + IntelliJ + TestNG)
但是当我 运行ning testng.xml 使用 IntelliJ 时,我在按下 运行:
后立即收到此消息
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.access0(URLClassLoader.java:73)
at java.net.URLClassLoader.run(URLClassLoader.java:368)
at java.net.URLClassLoader.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
我在这里找到了一个解决方案:https://intellij-support.jetbrains.com/hc/en-us/community/posts/206597869-Cannot-launch-NGTest-runner-in-IntelliJ-IDEA-2016-1
I got it to work by selecting "In whole project" (I had "In single
module" selected) under the Configuration tab in the TestNG "Run/Debug
Configurations."
However, the prior configuration worked in IntelliJ IDEA 15, so to me,
it seems that it may have come from a breaking change with newer IDE.
对我有用。
添加屏幕截图以帮助贾斯汀回答上述问题。默认是In single module需要改为In whole project.
对我来说有点不同,我使用 testng 配置文件 运行 一个 testng 套件。我是从父模块而不是子模块 运行 宁它。以下是我为克服错误所做的工作
请按照以下步骤操作:
从项目的 java 构建路径中添加 TestNG
库。
右击 project
然后 -> Build path -> Configure build path -> Libraries tab -> Add library -> Choose TestNG
和 apply
.
创建一个 testNG class 和 运行 testng.xml
文件,它将起作用。
右键单击项目 -> testNG-> create testNG class -> give the details
和 create one method
class 然后 运行 文件。
对我来说,这还是有点不同。我在 2019 年才开始使用 IntelliJ,直到圣诞节前后它都运行良好。这是最终修复了我无法 运行 IntelliJ 的行为不端的系统(因为我可以 运行 另一个系统上的同一存储库中的相同文件 运行 使用相同的 IntelliJ 版本)
必须更改模板 TestNG 以使用测试类套件而不是 Class,然后将其设置为整个项目。
showing where i changed the project to Whole Project
按照步骤 -
1.从java构建路径添加TestNG库-转到项目-->右键单击-->属性-->java构建路径-->第三个选项库。
- TestNG - sELECT 然后申请并关闭
尝试了此 post 中提到的所有答案,除此之外,我还必须从启动前部分中删除构建:激活工具 window 以使其工作:
Screen Shot
我的有点不同,使用 Allure 通过 TestNG 生成报告。在 gradle.build 文件的 Allure 部分,我需要从 2.8.1 -> 2.13.8 升级。由于某些原因,2.8.1 导致 class 未找到 TestNG 异常,他们需要对日志记录进行一些改进。
def allureVersion = "2.13.8"
allure {
autoconfigure = true
aspectjweaver = true
version = allureVersion
clean = true
useTestNG {
version = allureVersion
}
}
这个错误
当我尝试使用 IntelliJ IDEA 从 Testng.xml 文件 运行 我的测试时出现NoClassDefFoundError: org/testng/TestNG
。
运行我的测试一个接一个地运行,与 运行 整个 gradle 项目一样完美,它指向 testng.xml
,例如 grade core-test:test
(在我的项目中,我使用的是 Appium + IntelliJ + TestNG)
但是当我 运行ning testng.xml 使用 IntelliJ 时,我在按下 运行:
后立即收到此消息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.access0(URLClassLoader.java:73)
at java.net.URLClassLoader.run(URLClassLoader.java:368)
at java.net.URLClassLoader.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
我在这里找到了一个解决方案:https://intellij-support.jetbrains.com/hc/en-us/community/posts/206597869-Cannot-launch-NGTest-runner-in-IntelliJ-IDEA-2016-1
I got it to work by selecting "In whole project" (I had "In single module" selected) under the Configuration tab in the TestNG "Run/Debug Configurations."
However, the prior configuration worked in IntelliJ IDEA 15, so to me, it seems that it may have come from a breaking change with newer IDE.
对我有用。
添加屏幕截图以帮助贾斯汀回答上述问题。默认是In single module需要改为In whole project.
对我来说有点不同,我使用 testng 配置文件 运行 一个 testng 套件。我是从父模块而不是子模块 运行 宁它。以下是我为克服错误所做的工作
请按照以下步骤操作:
从项目的 java 构建路径中添加
TestNG
库。右击
project
然后-> Build path -> Configure build path -> Libraries tab -> Add library -> Choose TestNG
和apply
.创建一个 testNG class 和 运行
testng.xml
文件,它将起作用。右键单击项目
-> testNG-> create testNG class -> give the details
和create one method
class 然后 运行 文件。
对我来说,这还是有点不同。我在 2019 年才开始使用 IntelliJ,直到圣诞节前后它都运行良好。这是最终修复了我无法 运行 IntelliJ 的行为不端的系统(因为我可以 运行 另一个系统上的同一存储库中的相同文件 运行 使用相同的 IntelliJ 版本)
必须更改模板 TestNG 以使用测试类套件而不是 Class,然后将其设置为整个项目。 showing where i changed the project to Whole Project
按照步骤 - 1.从java构建路径添加TestNG库-转到项目-->右键单击-->属性-->java构建路径-->第三个选项库。
- TestNG - sELECT 然后申请并关闭
尝试了此 post 中提到的所有答案,除此之外,我还必须从启动前部分中删除构建:激活工具 window 以使其工作:
Screen Shot
我的有点不同,使用 Allure 通过 TestNG 生成报告。在 gradle.build 文件的 Allure 部分,我需要从 2.8.1 -> 2.13.8 升级。由于某些原因,2.8.1 导致 class 未找到 TestNG 异常,他们需要对日志记录进行一些改进。
def allureVersion = "2.13.8"
allure {
autoconfigure = true
aspectjweaver = true
version = allureVersion
clean = true
useTestNG {
version = allureVersion
}
}