运行 JUnit 测试时的“未找到类”异常

2022-08-31 08:18:03

我在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库位于POM依赖项中。JUnit

我已经尝试过清理项目,并使用Eclipse的JUnit插件创建了一个新的JUnit测试用例,但仍然得到同样的错误。


答案 1

这似乎是因为在你使用时只有源代码在编译(我使用的是maven 3.1.0,所以我不确定它是否总是这样)。mvn clean compile

如果你运行 ,测试代码也会编译,但随后它会运行测试(如果你试图通过Eclipse运行它们,这可能不是立即需要的)。解决此问题的方法是在执行 .例如,您将运行 。mvn testtest-compilemvn cleanmvn clean compile test-compile


答案 2

我在测试中遇到了类似的问题,并在Web中的某个地方发现,您必须转到项目属性中的“构建路径”,并将Maven依赖项移动到JRE系统库之上。这似乎对我有用。


推荐