为了账号安全,请及时绑定邮箱和手机立即绑定

IntelliJ JUnit 5 测试作为 Gradle 任务运行良好

IntelliJ JUnit 5 测试作为 Gradle 任务运行良好

素胚勾勒不出你 2021-12-01 19:10:53
在 Windows 10 上使用 IntelliJ IDEA 版本 2018.2.5(社区版),并基于来自 JUnit 团队的JUnit 5 示例学习如何在Gradle 4.8 中使用 JUnit 5参数化测试。测试像 gradle 任务测试一样按预期运行,但有时在运行单个测试时会得到Exception in thread "main" java.lang.NoClassDefFoundError:     org/junit/platform/launcher/TestExecutionListener如何在仍然使用 IntelliJ 2018.2.5(社区版)、带有参数测试的 JUnit 5 和使用 Gradle 的同时修复此异常?我一直在试图为此找到答案,但我遇到的大部分答案都指出,IntellJ 与 JUnit 5 的使用处于很多过渡阶段,因此不确定该信任什么。细节我知道有比正常情况或超出正常情况更多的细节和屏幕截图,但是当您学习新事物并需要帮助并开始寻找信息时,您会厌倦看到遗漏了一些重要细节的答案。因此,对于那些在同一条船上并且需要查看缺失细节的人,希望我已将其包含在此处。虽然这个问题可能不是您要找的问题,但此处的详细信息可能会对您有所帮助。异常堆栈跟踪Exception in thread "main" java.lang.NoClassDefFoundError: org/junit/platform/launcher/TestExecutionListenerat java.base/java.lang.ClassLoader.defineClass1(Native Method)at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:802)at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:700)at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:623)at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)软件版本微软视窗版本 10.0.171314.345IntelliJ IDEA 2018.2.5(社区版)构建 #IC-182.4892.20,构建于 2018 年 10 月 16 日 JRE:1.8.0_152-release-1248-b19 amd64JVM:JetBrains 开发的 OpenJDK 64 位服务器 VM:11 SDK (java 版本“11.0.1”)IntelliJ 是为此示例安装的干净版本。使用的特定 JUnit 示例:junit5-jupiter-starter-gradle
查看完整描述

1 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

IntelliJ IDEA(针对此问题 Community 2018.2)有时会为 JUnit5 测试生成无效配置。

要从菜单中查看运行配置,请选择:运行 -> 编辑配置...

//img1.sycdn.imooc.com//61a7587300015a7315220987.jpg

两种不同的结果

在此示例中,IntelliJ IDEA 生成的 Class CalculatorTests 有两个运行配置。

1.

第一个配置生成异常:

Exception in thread "main" java.lang.NoClassDefFoundError:   
  org/junit/platform/launcher/TestExecutionListener

//img1.sycdn.imooc.com//61a758830001f6de11880727.jpg

//img1.sycdn.imooc.com//61a7588b0001388b15170909.jpg

2.

第二个配置正确运行

//img1.sycdn.imooc.com//61a7589d00010a6d11830721.jpg

//img1.sycdn.imooc.com//61a758a500016bdf15150907.jpg

概括

因此,当通过单击左边距中的绿色箭头运行单个测试时,测试会导致异常。检查实际运行的是哪个配置

//img1.sycdn.imooc.com//61a758b10001facf15160907.jpg

然后检查测试的配置细节

//img1.sycdn.imooc.com//61a758bb000143b411860728.jpg

以确保Use classpath or module设置正确。


查看完整回答
反对 回复 2021-12-01
  • 1 回答
  • 0 关注
  • 180 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信