junit (eclipse) 测试既不失败也不通过
junit (eclipse) test neither fails nor passes
我正在 运行在 eclipse 中进行测试。 jar 和测试已正确编写。我已经确保它不是版本控制错误等。在我 运行 测试之后,控制台(在 eclipse 中)显示程序 运行 成功并终止但在 junit 测试的角度来看,在 eclipse 中,红色按钮被禁用,但 "Rerun Test" 仍保持启用状态。没有失败痕迹,我也没有看到指示测试成功的绿色条。这方面的任何指示都会有所帮助。
import static org.junit.Assert.assertEquals;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
public class ExampleTest{
@Before
public void setUp() throws Exception {
}
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
}
@Test
public void validityTest() {
String userInput = ValidatorCode.validateStr("validStr");
assertEquals("theValidValue", userInput);
}
}
希望我没有误会你的意思。据我了解,您只有一个测试成功。现在,如果您没有启用 开关 (选中图中带圆圈的按钮),那么您将看不到成功的测试。让你的测试失败,然后再次检查,失败的测试应该总是显示。
找到一段代码,其中 System.exit(0)
用于终止执行。显然,Junit 不喜欢这样。我将 System.exit(0)
替换为 return
语句,效果非常好。
解决了这个问题后,我的进一步问题是,Junit 不喜欢 System.exit(0) 背后的逻辑是什么? System.exit(0) 表示进程干净退出或顺利执行(没有任何警报),好吧! Junit 不应该那样吗?
我正在 运行在 eclipse 中进行测试。 jar 和测试已正确编写。我已经确保它不是版本控制错误等。在我 运行 测试之后,控制台(在 eclipse 中)显示程序 运行 成功并终止但在 junit 测试的角度来看,在 eclipse 中,红色按钮被禁用,但 "Rerun Test" 仍保持启用状态。没有失败痕迹,我也没有看到指示测试成功的绿色条。这方面的任何指示都会有所帮助。
import static org.junit.Assert.assertEquals;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
public class ExampleTest{
@Before
public void setUp() throws Exception {
}
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
}
@Test
public void validityTest() {
String userInput = ValidatorCode.validateStr("validStr");
assertEquals("theValidValue", userInput);
}
}
希望我没有误会你的意思。据我了解,您只有一个测试成功。现在,如果您没有启用 开关 (选中图中带圆圈的按钮),那么您将看不到成功的测试。让你的测试失败,然后再次检查,失败的测试应该总是显示。
找到一段代码,其中 System.exit(0)
用于终止执行。显然,Junit 不喜欢这样。我将 System.exit(0)
替换为 return
语句,效果非常好。
解决了这个问题后,我的进一步问题是,Junit 不喜欢 System.exit(0) 背后的逻辑是什么? System.exit(0) 表示进程干净退出或顺利执行(没有任何警报),好吧! Junit 不应该那样吗?