java - 线程 "main"java.lang.NoClassDefFoundError : org/junit/platform/commons/util/ClassNamePatternFilterUtils 中出现异常

标签 java junit noclassdeffounderror junit5 junit-jupiter

我想配置 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>

但我得到了异常(exception):

"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版本中引入。因此,需要显式添加依赖项。

关于java - 线程 "main"java.lang.NoClassDefFoundError : org/junit/platform/commons/util/ClassNamePatternFilterUtils 中出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61801256/

相关文章:

使用 AES/GCM (Android 9) 时,Java Cipher.update 不写入缓冲区

java - 模拟方法返回 Null

android - Instrumentation.ActivityMonitor 不监控 Intent.ACTION_CALL

java - 解析外部依赖的类路径

excel - 使用 Apache POI 打开 .xlsx 文件会给出 NoClassDefFoundError InvalidFormatException

java - 如何让一个字符串变量拥有多个实例?

java - Spring MVC 不会加载静态内容

java - Junit 测试运行卡住

java - 运行 gradle 测试时出现 NoClassDefFoundError、FxRobotException、FatalBeanException 和 ExecutionException

java - 将音频文件添加到我的 android 应用程序