运行JUnit测试时未找到java类异常
在Eclipse中运行JUnit测试时出现以下错误:
Class not found com.myproject.server.MyTest
java.lang.ClassNotFoundException: com.myproject.server.MyTest
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
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)
虽然我使用的是maven,但我已经尝试在类路径中添加了JUnit
库,JUnit库位于POM依赖项中
我已经尝试过清理这个项目,并使用JUnit插件for Eclipse创建了一个新的JUnit测试用例,但仍然遇到同样的错误
# 1 楼答案
这似乎是因为在使用
mvn clean compile
时只有源代码在编译(我使用的是maven 3.1.0,所以我不确定它是否总是这样)如果您运行
mvn test
,测试代码也会编译,但随后它会运行测试(如果您试图通过Eclipse运行测试,这可能不是立即需要的)解决这个问题的方法是在执行mvn clean
操作时,将test-compile
添加到Maven命令序列中。例如,您可以运行mvn clean compile test-compile
# 2 楼答案
在尝试了这里的一切之后,没有任何改进,我通过重新启动Eclipse解决了我的问题
# 3 楼答案
我通过运行maven更新修复了我的问题。 右键单击project your project>;马文>;更新项目
# 4 楼答案
我遇到了同样的问题,并且我能够使用@slomek的answer修复它,但是问题在那之后再次出现
最后,我通过将项目的输出文件夹添加到JUnit测试的运行配置中来修复它。步骤如下:
Project properties -> Java Build Path -> Default output folder
查找项目的输出文件夹<project-folder>/bin
Run -> Run Configurations...
Classpath
选项卡User Entries
下显式添加项目的输出文件夹-即使项目已经包含在那里Advanced -> Add folder
添加输出文件夹这个问题可能是由于Eclipse中奇怪的项目设置造成的——例如,源文件夹中嵌套的maven项目作为单个项目/文件夹导入(至少我的项目是这样设置的)
# 5 楼答案
如果此问题仅在Eclipse中发生,请执行命令Project->;清洁的对选定的项目可能有所帮助
# 6 楼答案
我在测试中遇到了类似的问题,并在Web的某个地方发现,您必须转到项目属性中的构建路径,并将Maven Dependencies移动到JRE系统库上方。这似乎对我有用