java - 线程“主”java.lang.NoClassDefFoundError 中的异常:org/junit/platform/commons/util/ClassNamePatternFilterUtils
问题描述
我想配置 Maven 以使用这些依赖项运行 Junit 5 测试:
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.7.0-M1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.7.0-M1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.7.0-M1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<version>1.7.0-M1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<version>3.3.3</version>
<scope>test</scope>
</dependency>
但我得到例外:
"C:\Program Files\Java\jdk-14\bin\java.exe"
Exception in thread "main" java.lang.NoClassDefFoundError: org/junit/platform/commons/util/ClassNamePatternFilterUtils
at org.junit.platform.launcher.core.LauncherFactory.loadAndFilterTestExecutionListeners(LauncherFactory.java:113)
at org.junit.platform.launcher.core.LauncherFactory.create(LauncherFactory.java:99)
at org.junit.platform.launcher.core.LauncherFactory.create(LauncherFactory.java:72)
at com.intellij.junit5.JUnit5IdeaTestRunner.createListeners(JUnit5IdeaTestRunner.java:46)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:31)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58)
Caused by: java.lang.ClassNotFoundException: org.junit.platform.commons.util.ClassNamePatternFilterUtils
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
你知道我该如何解决这个问题吗?
解决方案
添加以下代码或 Maven 等效项:
testRuntimeOnly "org.junit.platform:junit-platform-commons:1.7.0"
说明:
ClassNamePatternFilterUtils 属于 platfrom-commons,它是传递依赖。该类在1.7.0版本中引入。因此,需要显式添加依赖项。
推荐阅读
- r - 无法在 R 中渲染流程图闪亮
- android - 使用 Google Direction API for Mobile App 进行路线优化
- javascript - 如果检查该变量是否为布尔值的语句会导致 "boolean != boolean"
- swift - SwiftUI:防止 Image() 将视图矩形扩展到屏幕边界之外
- dynamics-crm - 分配的自动共享不会触发 GrantAccess
- python - 如何通过经过身份验证的 HTTP 代理通过 SSH 执行远程命令?
- python - 用于手写和徽标的 OCR / ICR
- c++ - if == 计算是否比 if 快
在 IT 额外课程中,有人告诉我,
if ==
计算速度比我学校if <
的if >
一名高年级学生更快。这是真的?
- java - 设置嵌套在地图中的地图的值
- python - 为什么 logging.handlers.RotatingFileHandler 打印未知字符?