为什么JUnit没有找到我的测试?

时间:2012-03-20 21:33:41

标签: java android eclipse junit

为了澄清,我对Java相对不熟悉。

我正在编写一个类“GobblerClient”来与API进行交互,为了测试我的一些函数,我决定使用JUnit编写一些单元测试。我创建了一堆失败的测试,当我去运行它们时,似乎JUnit找不到它们。

picture of eclipse with failing tests and no tests in the junittest view

为什么JUnit可能没有检测到我的测试?

编辑:完整的测试。

package com.gobbler;

import static org.junit.Assert.*;

import org.junit.Test;

public class GobblerClientTest {

    @Test
    public void testDisplay_name() {
        fail("Not yet implemented");
    }

    @Test
    public void testUser_id() {
        fail("Not yet implemented");
    }

    @Test
    public void testAuthenticity_token() {
        fail("Not yet implemented");
    }

    @Test
    public void testClient_key() {
        fail("Not yet implemented");
    }

    @Test
    public void testGobblerClient() {
        fail("Not yet implemented");
    }

    @Test
    public void testAuthenticate() {
        fail("Not yet implemented");
    }

    @Test
    public void testGet_data() {
        fail("Not yet implemented");
    }

    @Test
    public void testSha1hmac() {
        fail("Not yet implemented");
    }

}

3 个答案:

答案 0 :(得分:4)

在运行某些测试之前,JUnit对话框为空,它显示上次运行的结果。

一种简单的方法是右键单击您的课程(在包资源管理器或源代码中的类名称),然后选择Run As - > JUnit Test

如果此时未显示任何测试,请使用Run As - >再试一次。 Run Configurations...并在出现的“运行”对话框中确保“测试运行器”下拉列表设置为“JUnit 4”。如果设置为早期版本,则不会检测到@Test注释。

编辑:由于您使用的是Android而非标准JVM,因此需要执行一些额外的设置,请参阅我的评论。

答案 1 :(得分:0)

一些猜测:也许你的Eclipse已经运行了之前的junit会话,由于某种原因而被卡住了;按“终止”并再次尝试可能有所帮助。

您可能想要检查的另一件事是您的Eclipse版本;如果它太旧了它的嵌入式junit运行器可能无法识别Junit的注释,如果我没弄错的话,这些注释包含在junit 4.x中。

最后一个猜测是尝试检查实际的junit测试是否包含在项目的构建路径中(尽管由于您能够让Eclipse开始运行测试,因此这种情况不太可能。)

答案 2 :(得分:0)

这恰好发生在IBM Rational Application Developer 8.5中。 在我的例子中,问题似乎是由于我使用默认的JDK(IBM用于WebSphere的JDK)配置了项目。切换到vanilla JDK 1.6为我修复了它。我怀疑真正的原因不是JDK的实际版本 - 但是这个开关足以让我继续......: - )