15

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

在此处输入图像描述

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

4

14 回答 14

12

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

于 2021-03-22T23:35:21.537 回答
4

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

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

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

于 2012-09-28T08:16:36.910 回答
3

一种可能性是 Eclipse 的 JUnit 运行程序被该方法的存在弄糊涂了,main并且正在运行该方法而不是测试方法。

尝试注释掉该main方法。它根本不应该在那里,IMO。

(顺便说一句, main 方法对我来说看起来不正确。我原以为它会TestSuite用单元测试类作为参数来实例化 a ,但你似乎给了它正在测试的类。那不会有任何“测试”方法,这可以解释为什么没有运行测试......)

于 2012-05-27T12:57:00.143 回答
2

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

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

于 2012-05-27T13:45:16.000 回答
2

就像已经提到的,删除主要方法,可能会有所帮助。如果我没记错的话,有什么特别的理由从 Juni3 的 TestCase 扩展?您是否使用 @Test 注释尝试过 Junit 4

例如:

@Test
public void testSomething() {
     //you stuff
}
于 2012-05-27T19:36:16.447 回答
2

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

于 2019-08-28T17:07:31.810 回答
2

我的情况不同,但我得到了相同的junit错误。我在junit依赖方面有冲突,使用:

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-engine</artifactId>
    <scope>test</scope>
</dependency>

有了这个,你必须使用

import org.junit.jupiter.api.Test;

代替

import org.junit.Test;
于 2021-10-18T13:47:14.747 回答
1

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

于 2015-02-02T18:56:26.030 回答
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,并且我本可以处于良好状态。我走的是阻力最小的道路。

于 2013-12-03T15:12:18.193 回答
0

当我在类路径上有两罐junit时发生在我身上。一个罐子隐藏在独立的硒服务器中。我通过从类路径中删除另一个 jar 并让运行时使用 selenium 服务器独立中的 junit jar 解决了这个问题。我在控制台中找不到任何关于类冲突或 Java 版本警告的消息。

于 2014-02-18T16:15:36.033 回答
0

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

于 2015-05-18T10:45:28.687 回答
0

在我的例子中,我使用了一个未被确定为符合测试条件的内部类。解决方法是使该类成为静态内部类,如下所示:

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

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

public static class MyClassTest  { // ....
}
于 2015-10-11T03:42:03.357 回答
0

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

于 2021-02-10T07:32:09.447 回答
0

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

于 2018-01-04T17:40:41.037 回答