运行JUnittesting时未发现类exception

在Eclipse中运行JUnittesting时出现这个错误:

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) 

我已经尝试在类path中添加JUnit库,虽然我正在使用maven,而JUnit库是在POM依赖。

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

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

如果你运行mvn test ,那么testing代码也会被编译,但是它会运行testing(如果你试图通过Eclipse来运行mvn test ,那么testing代码可能不会立即需要)。解决方法是将test-compile添加到你的Maven命令序列,每当你做一个mvn clean 。 例如,你可以运行mvn clean compile test-compile

我有一个与我的testing类似的问题,发现在Web的某个地方,你必须去你的项目的属性中的生成path ,并移动Maven的依赖上面的JRE系统库 。 这似乎为我工作。

我面临同样的问题,我可以使用@ slomek的答案来解决这个问题,但是之后这个问题又重新出现了。

我最终通过将项目的输出文件夹添加到JUnittesting的运行configuration来修复它。 步骤是:

  • Project properties -> Java Build Path -> Default output folderfind您的项目的输出文件Project properties -> Java Build Path -> Default output folder
    • 通常这是<project-folder>/bin
  • 转到Run -> Run Configurations...
  • 点击unit testing的运行configuration,然后点击Classpath标签
  • User Entries下显式添加项目的输出文件夹 – 即使项目已经包含在那里
    • 点击Advanced -> Add folder来添加输出文件夹

这个问题可能是由于在Eclipse中奇怪的项目设置 – 例如源文件夹嵌套的maven项目导入为一个单一的项目/文件夹(至less这是我的项目是如何设置的)。

在尝试了一切之后,没有任何改进,我通过重新启动Eclipse解决了我的问题

如果仅在Eclipse中出现此问题,则在所选项目上执行命令“项目” – >“清理…”可能会有所帮助。

在我的情况下,我有一个错误的maven目录结构。

应该是这样的:

/ src / test / java / com.myproject.server.MyTest

在我修好之后 – 一切都像魅力一样。

就我而言,只有接下来的步骤帮助我解决了这个问题:

  1. Project-> properties-> Run / Debug Settings。
  2. 在“启动configuration…..”中select类/项目
  3. 编辑 – >类path – >“恢复默认条目”

早些时候,在这种情况下,我总是做mvn eclipse:eclipse并重新启动我的Eclipse,它的工作。 迁移到GIT后,它停止工作对我来说有点怪异。

这里的基本问题是Eclipse先生没有find编译的类。 然后,我将输出文件夹设置为默认由mvn clean install生成的Project / target / test-classes而不跳过testing,并继续执行以下解决方法:

选项1:为每个testing用例设置类path

Eclipse – > Run – > Run Configurations – >在JUnit下 – >selectmytest – >在classpath下tab – >select用户条目 – >高级 – >添加文件夹 – >select – >应用 – >运行

选项2:创build类pathvariables并将其包含在所有testing用例的类path中

Eclipse – > Windows – > Classpathvariables – > New – > [Name:Junit_test_cases_cp | 然后进入Eclipse-> Run – > Run Configurations – > JUnit-> select mytest – > classpath tab – > Select User Entries-> >适用 – >运行

这是在网上尝试所有build议后,目前唯一的工作。

我在debuggingJunits的Eclipse Helios上遇到了类似的问题。 我的问题是有点不同,因为我能够成功地运行Junits,但是当debugging相同的JUNIT时,我得到ClassNotFoundException。

我已经尝试了各种不同的解决scheme可用在其他地方的Stackoverflow.com和论坛,但似乎没有任何工作。 在这些问题敲了近两天之后,我终于find了解决办法。

如果没有任何解决scheme似乎可行,只需删除工作区中创build的.metadata文件夹即可。 这会造成额外的额外开销,导入项目和你所做的各种configuration,但是这些肯定会解决这些问题。

希望这些帮助。

这些步骤为我工作。

  • 删除本地Maven仓库的内容。
  • 在命令行中运行mvn clean install 。 (cd到pom目录)。
  • 在Eclipse中构build项目。

1- mvn eclipse:eclipse

2-项目清理所有项目

3-重新启动

值得一提的是,如果你正在使用eGit,并且你的类path会因为说的更新而被更新,像Clover这样的testing覆盖工具,有时会出现一个清理呃逆,并不能完全删除/path/to/git/repository/<project name>/bin/

本质上,我使用了Eclipse的错误日志视图,确定在清理过程中导致问题的原因,导航到源目录,并手动删除<project name>/bin目录。 一旦完成,我回到Eclipse并刷新( F5 )我的项目,错误消失了。

检查您的项目是否作为Maven项目打开,而不仅仅是一个常规的Java项目。 其实是一个不容易的事情,但这也是你可能会错过的原因。

这也可能是由于“[错误]在这个环境中没有提供编译器,也许你正在运行JRE而不是JDK?

可能是你忘了将Main类Test Case类放在/ src / test / java中。 检查一次。