在使用maven,eclipse,junit的项目中,打包后再进行单元测试常常会报找不到类
Class not found com.xxx.service.XxxServiceTest
java.lang.ClassNotFoundException: com.xxx.service.XxxServiceTest
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
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)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClass(RemoteTestRunner.java:693)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClasses(RemoteTestRunner.java:429)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
原因:
在Maven项目中,Junit调用的是 /target/test-classes 下编译好的class文件,经查看果真没有,当然报Class not found Exception
解决方法:
Project -> clean 操作让eclipse重新编译,路径下有class文件后,测试成功。
注意:
Maven clean 会清除如下内容:
1. /target/classes 下的class文件
2. /target/generated-sources 整个文件夹
3. /target/maven-archiver 整个文件夹
4. /target/test-classes 下的class文件
Maven install 会重新创建:
1. /target/classes 下的class文件