在Eclipse中运行junit测试时发生ClassNotFoundException

hud*_*udi 5 java eclipse junit maven classnotfoundexception

我真的很绝望,为什么甚至会发生这种异常?我正在上课 MyTestIT。找不到什么类?我运行的课程...我试图清理并再次在Eclipse中构建它,但没有成功

 Class not found it.mytest.MyTestIT
    java.lang.ClassNotFoundException: it.mytest.MyTestIT
        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:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClass(RemoteTestRunner.java:685)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClasses(RemoteTestRunner.java:421)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Run Code Online (Sandbox Code Playgroud)

PS:我忘了补充说它一直在工作。但是今天我只打开eclipse,我不能在这里进行测试。使用Maven仍在工作

Pet*_*háč 6

看起来像是某种奇怪的 Eclipse 问题,我们很难诊断,但强力方法是这样的:如果您的项目上有 Maven,只需从 Eclipse 工作区中删除您的项目(不要删除文件) ,然后从命令行执行:

mvn clean install eclipse:clean eclipse:eclipse
Run Code Online (Sandbox Code Playgroud)

然后将现有项目重新导入回 Eclipse 工作区。完成此程序后应该可以正常工作。

编辑

启动测试并切换到调试视角。您将在“调试”视图中看到最近的启动。选择它并转到其属性(快捷键:Alt+Enter)。在“命令行”部分中,您应该看到 Eclipse 用于启动单元测试的确切命令是什么。检查类路径看起来没问题。这可能只是一些奇怪的 eclipse 项目设置。Maven 将使用不同的类路径来运行您的测试,这可能是 Eclipse 在错误的目录中查找您的单元测试。如果你的类在类路径中,那么它一定可以工作。