【问题标题】:JUnit tests in Eclipse Indigo reporting nothing?Eclipse Indigo 中的 JUnit 测试什么也没报告?
【发布时间】:2011-10-17 19:24:32
【问题描述】:

我试图让 JUnit 4 测试在 Eclipse Indigo SR1 中正确运行,但有些问题。在我能想到的最简单的情况下(如下):

package ints;

import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.Test;

public class IntTest {

    @Before
    public void setUp() throws Exception {
        System.out.println("setUp()");
    }

    @Test
    public void test() {
        System.out.println("assertEquals(1, 1);");
        assertEquals(1, 1);
    }

    @Test
    public void test2() {
        System.out.println("assertEquals(1, 2);");
        assertEquals(1, 2);
    }
}

当我在 Eclipse (Alt+Shift+X, T) 中运行它时,JUnit 视图报告“运行:0/0,错误:0,失败:0”,而控制台显示如下,但我不是得到其他任何东西。我可以从测试方法中抛出异常,它们也不会显示。

setUp()
assertEquals(1, 1);
setUp()
assertEquals(1, 2);

有什么想法吗?

【问题讨论】:

  • 嗯,奇怪。只是为了好玩,我打开了一个新的工作区并尝试了它。还是什么都没有。
  • Java 1.7.0、32 位和 64 位。 Windows 7,64 位。
  • 你试过 Java 1.6.x 吗?
  • 我试过 Java 1.6。首先卸载了我所有的 JDK/JRE。然后安装了 1.6u29(32 位和 64 位)& 它工作正常。安装了 1.7u1(64 位)并且可以正常工作。安装了 1.7u1(32 位)并停止工作。卸载 1.7u1(32 位)并重新开始工作。我的工作很好,但这感觉就像魔术一样。

标签: java eclipse testing junit


【解决方案1】:

我认为您的系统上同时安装了 JUnit 3 和 JUnit4,并且项目导入了错误版本的 JUnit。这将导致各种奇怪的问题。

在您的情况下,代码似乎根本没有被视为测试,如果您使用的是 JUnit3,这很有意义。

检查您的构建路径以查看您使用的是哪个 JUnit。

【讨论】:

  • 除非 Eclipse 对我撒谎,否则 org.junit_4.8.2_v20110321-1705\junit.jar 位于类路径中(通过插件依赖项或直接通过 JUnit4)。
  • 另外,我不确定你是否注意到了这一点,但我的 System.outs 正在被写出,所以我的代码正在被调用。
  • 嗯。是的,你是对的。好吧,代码是正确的,所以故障一定出在其他地方。您确定 JUnit 视图正在显示您的测试吗?它应该说类似“IntTest [Runner: JUnit4] (0.0000s)”。如果您右键单击项目并选择“Run as...” - “JUnit test”,结果相同?
  • JUnit 视图显示“IntTest”,然后切换到“Terminated”。控制台显示上述输出。如果我右键单击项目并作为 JUnit 测试运行,我会得到相同的结果(减去显示的名称)。
  • 它还说“[Runner: JUnit4]”?如果是这样,那么我完全没有想法。尝试下载新的 Eclipse 并尝试使用旧的工作区。启动一个新的工作区/项目并尝试旧的 eclipse 安装。看看这有什么不同。
【解决方案2】:

我在使用 JUnit 时遇到了同样的问题。我在我的旧 JDK 上运行了更新,但问题仍然存在,所以我从我的机器上完全删除了所有 JDK-s 并安装了最新的 jdk 6,Eclipse Indigo 神奇地开始正常工作。

可能是不断更新的jdk 6没有正确升级...

【讨论】:

    【解决方案3】:

    检查机器上的(本地)防火墙规则。一年前我遇到了同样的问题,允许 Eclipse/Java 的本地连接解决了这个问题。 (我刚刚发现了一个关于此的注释。)

    【讨论】:

      【解决方案4】:

      出于某种原因,卸载 1.7 32 位 JDK 为我解决了这个问题。它似乎不在路上或任何我能弄清楚的地方。感觉有点像魔术,但确实有效。

      我安装了 4 个 JDK(1.6 和 1.7、32 位和 64 位)。现在我有 3 个。

      【讨论】:

        【解决方案5】:

        我遇到了同样的问题。 JUnit 启动但不工作且未完成且不给出任何异常。对我来说,检查防火墙 iptables 命令并添加运行:

        iptables -A INPUT -i lo -j ACCEPT
        iptables -A OUTPUT -o lo -j ACCEPT
        

        JUnit 需要此权限才能运行 - 允许内部接口通信。

        【讨论】:

          猜你喜欢
          • 2023-03-05
          • 1970-01-01
          • 1970-01-01
          • 2014-09-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-05-24
          相关资源
          最近更新 更多