IntelliJ+Maven+JUnit环境下NoClassDefFoundError问题求助
IntelliJ 2021.3.3中JUnit单元测试运行报错求助
运行单元测试时控制台持续出现以下错误:
Exception in thread "main"java.lang.NoClassDefFoundError:org/junit/platform/launcher/TestIdentifier at com.intellij.junit5.JUnit5IdeaTestRunner.<clinit>(JUnit5IdeaTestRunner.java:86) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:315) at com.intellij.rt.junit.JUnitStarter.getAgentClass(JUnitStarter.java:244) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:225) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54) Caused by: java.lang.ClassNotFoundException: org.junit.platform.launcher.TestIdentifier 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)
项目依赖与配置
POM文件中JUnit相关依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> <scope>test</scope> </dependency>
IML文件中的JUnit配置
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.8.2" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.8.2" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.8.2" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.8.2" level="project" />
已尝试的解决方法
- 删除.m2目录下的Maven依赖并重新下载
- 通过「File --> Invalidate Caches」清理IntelliJ缓存
- 更新pom.xml中的依赖版本
补充说明
已知可能需要修改JUnit Runtime Scope版本,但找到的教程仅针对Gradle项目,无法适配当前Maven项目。另外,同一项目在另一台同版本IntelliJ机器及VS Code中均可正常运行,仅当前IntelliJ环境出现问题,恳请提供解决思路。
内容的提问来源于stack exchange,提问作者Andrei Ferreira Lançanova
相关产品推荐
相关产品推荐

