为了澄清,我对Java相对不熟悉。
我正在编写一个类“GobblerClient”来与API进行交互,为了测试我的一些函数,我决定使用JUnit编写一些单元测试。我创建了一堆失败的测试,当我去运行它们时,似乎JUnit找不到它们。
为什么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");
}
}
答案 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的实际版本 - 但是这个开关足以让我继续......: - )