异常

JUnit5异常:java.lang.NoClassDefFoundError: org/junit/platform/commons/util/ClassNamePatternFilterUtils

问题描述:

提示:在eclipse中使用junit5的依赖是提示no tests found with test runnerr ‘Junit5’ 时
在这里插入图片描述

java.lang.NoClassDefFoundError: org/junit/platform/commons/util/ClassNamePatternFilterUtils
	at org.junit.platform.launcher.core.LauncherFactory.loadAndFilterTestExecutionListeners(LauncherFactory.java:122)
	at org.junit.platform.launcher.core.LauncherFactory.create(LauncherFactory.java:108)
	at org.junit.platform.launcher.core.LauncherFactory.create(LauncherFactory.java:75)
	at org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader.<init>(JUnit5TestLoader.java:31)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createRawTestLoader(RemoteTestRunner.java:367)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createLoader(RemoteTestRunner.java:362)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.defaultInit(RemoteTestRunner.java:306)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.init(RemoteTestRunner.java:221)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:205)
Caused by: java.lang.ClassNotFoundException: org.junit.platform.commons.util.ClassNamePatternFilterUtils
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	... 14 more

第一个问题:

提示:在eclipse中使用junit5的依赖是提示no tests found with test runnerr ‘Junit5’ 时,三个依赖版本之间的问题,之前我的org.junit.platform是1.7,而我的juniter时5.6.2,所以出现了这个错误,后面参照在这里插入图片描述
在这里插入图片描述
这是改正之后的三个依赖的版本。可以运行成功junit5

<dependency>
  		<groupId>org.junit.jupiter</groupId>
  		<artifactId>junit-jupiter</artifactId>
  		<version>5.6.2</version>
  		<scope>test</scope>
  	</dependency>
  	
  	<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine -->
  	<!-- api的版本应该与engine的版本保持一致 -->
	<dependency>
  	  <groupId>org.junit.jupiter</groupId>
   	 <artifactId>junit-jupiter-engine</artifactId>
   	 <version>5.6.2</version>
   	 <scope>test</scope>
	</dependency>
	
	<!-- https://mvnrepository.com/artifact/org.junit.platform/junit-platform-launcher -->
<dependency>
    <groupId>org.junit.platform</groupId>
    <artifactId>junit-platform-launcher</artifactId>
    <version>1.6.0</version>
    <scope>test</scope>
</dependency>
	

第二个问题:

因为导入三个依赖没有导入成功,或者少了那么一两个也会提示找不到junit5,其中典型:
java.lang.NoClassDefFoundError: org/junit/platform/launcher/core/LauncherFactory
	at org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader.<init>(JUnit5TestLoader.java:31)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createRawTestLoader(RemoteTestRunner.java:367)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createLoader(RemoteTestRunner.java:362)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.defaultInit(RemoteTestRunner.java:306)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.init(RemoteTestRunner.java:221)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:205)
Caused by: java.lang.ClassNotFoundException: org.junit.platform.launcher.core.LauncherFactory
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	... 11 more

这时候,我的依赖是这样的

<dependency>
  		<groupId>org.junit.jupiter</groupId>
  		<artifactId>junit-jupiter</artifactId>
  		<version>5.6.2</version>
  		<scope>test</scope>
  	</dependency>
  	
  	<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine -->
  	<!-- api的版本应该与engine的版本保持一致 -->
	<dependency>
  	  <groupId>org.junit.jupiter</groupId>
   	 <artifactId>junit-jupiter-engine</artifactId>
   	 <version>5.6.2</version>
   	 <scope>test</scope>
	</dependency>
	
	<!-- https://mvnrepository.com/artifact/org.junit.platform/junit-platform-launcher -->
<dependency>
    <groupId>org.junit.platform</groupId>
    <artifactId>junit-platform-launcher</artifactId>
    <version>5.6.0</version> //似乎还没有这个版本,但是当时无知。
    <scope>test</scope>
</dependency>

或者是这样的

<dependency>
  		<groupId>org.junit.jupiter</groupId>
  		<artifactId>junit-jupiter</artifactId>
  		<version>5.6.2</version>
  		<scope>test</scope>
  	</dependency>
  	
  	<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine -->
  	<!-- api的版本应该与engine的版本保持一致 -->
	<dependency>
  	  <groupId>org.junit.jupiter</groupId>
   	 <artifactId>junit-jupiter-engine</artifactId>
   	 <version>5.6.2</version>
   	 <scope>test</scope>
	</dependency>
	

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值