JUnit测试未在Eclipse中运行

时间:2012-05-27 12:28:27

标签: java eclipse junit

这是eclipse编辑器的快照。您可以看到测试和JUnit选项卡。当我尝试运行测试时,它表示终止。

enter image description here

有人知道这里发生了什么吗?

由于

13 个答案:

答案 0 :(得分:3)

一种可能性是Eclipse的JUnit运行器因main方法的存在而感到困惑,并且正在运行而不是测试方法。

尝试评论main方法。它根本不应该存在,IMO。

(顺便说一句,主方法看起来不对我。我原以为它会将单元测试类作为参数实例化TestSuite,但你好像给它上课了在测试中。这将没有任何“测试”方法,这可以解释为什么没有运行测试...)

答案 1 :(得分:3)

就我而言,这是因为 Eclipse 开始使用 JUnit 5 作为测试运行程序。我通过转到运行配置并选择较旧的测试运行程序解决了该问题: test config

答案 2 :(得分:2)

如前所述,删除main方法,可能会帮助。如果我没记错的话,从TestCase扩展到Juni3的任何特殊原因?您是否使用@Test注释尝试了Junit 4

例如:

@Test
public void testSomething() {
     //you stuff
}

答案 3 :(得分:2)

不确定您的问题是否已经解决。

当我更正了Project - > Properties - > Java Compiler时,我遇到了类似问题 - > JDK Compliance settings

我在1.5和1.6之间发生了冲突。当我恢复到1.5(这是当前活动的JRE)时,我的JUnits再次开始工作。

答案 4 :(得分:1)

第一次将junit jar文件添加到构建路径时,我遇到了同样的问题。 确保将junit.jar文件添加到Java Build Path-> Classpath部分,而不是modulepath部分

答案 5 :(得分:0)

手动定义运行行为:右键单击 - >运行方式 - > 运行配置

然后您可以定义测试用例的每个细节:测试类,测试方法,类路径,junit版本,JVM参数等。

答案 6 :(得分:0)

当我看到没有运行任何测试时,我打开控制台并看到以下错误:

java.lang.UnsupportedClassVersionError: junit/framework/Test (Unsupported major.minor version 49.0)
   at java.lang.ClassLoader.defineClass0(Native Method)
   at java.lang.ClassLoader.defineClass(Unknown Source)
   at java.security.SecureClassLoader.defineClass(Unknown Source)
   at java.net.URLClassLoader.defineClass(Unknown Source)
   at java.net.URLClassLoader.access$100(Unknown Source)
   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 java.lang.ClassLoader.loadClassInternal(Unknown Source)
   at java.lang.Class.forName0(Native Method)
   at java.lang.Class.forName(Unknown Source)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadTestLoaderClass(RemoteTestRunner.java:328)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createRawTestLoader(RemoteTestRunner.java:318)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createLoader(RemoteTestRunner.java:313)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.defaultInit(RemoteTestRunner.java:291)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.init(RemoteTestRunner.java:212)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

经过进一步调查后,我意识到我使用的junit框架是针对1.6 jre构建的,而我正在构建一个1.3 jre的单元测试。当我针对1.6构建单元测试时,我的测试运行了。或者,我想我可以建立(或找到)针对1.3的junit,我可以保持良好状态。我走的是阻力最小的道路。

答案 7 :(得分:0)

当我在课堂上有两个junit时,发生在我身上。一个jar被隐藏在selenium服务器独立内部。我通过从类路径中删除另一个jar并让运行时在selenium服务器独立中使用junit jar来解决该问题。我在控制台中找不到有关类冲突或java版本警告的任何消息。

答案 8 :(得分:0)

在我的情况下,我已经完成了重构,并且.classpath没有更新,并且控制台显示有关无效类的错误。更新类路径文件后,一切都开始重新运行。

答案 9 :(得分:0)

不确定这是否有帮助,但在我的情况下,我必须在Junit最终开始响应之前更新我的项目配置Maven->更新项目配置

答案 10 :(得分:0)

在我的情况下,我使用的内部课程没有被确定为有资格参加考试。修复是让这个类成为一个静态的内部类:

public class MyClass { //... class I wanted to test
}

这个内部类(即在同一个文件中)用于测试MyClass - 但eclipse没有找到它......除非它是静态的。

public static class MyClassTest  { // ....
}

答案 11 :(得分:0)

确保您没有其他进程阻止执行。就我而言,构建工作区正在休眠,阻止所有junit执行。

答案 12 :(得分:0)

在尝试运行 JUnit 测试时,请检查底部区域的“进度”选项卡以查看是否缺少任何项目依赖项。那是我的问题。