Java junit(eclipse)测试既不失败也不通过

Java junit(eclipse)测试既不失败也不通过,java,eclipse,junit,Java,Eclipse,Junit,我正在eclipse中运行测试。jar和测试是正确编写的。我已经确保它不是版本控制错误等。在我运行测试后,控制台(在eclipse中)显示程序成功运行并终止,但在junit测试透视图中,在eclipse中,红色按钮变为禁用,但“重新运行测试”仍然保持启用状态。没有失败的痕迹,我也看不到指示测试成功的绿色条。这里面的任何指针都会有帮助 import static org.junit.Assert.assertEquals; import org.junit.After; import org.ju

我正在eclipse中运行测试。jar和测试是正确编写的。我已经确保它不是版本控制错误等。在我运行测试后,控制台(在eclipse中)显示程序成功运行并终止,但在junit测试透视图中,在eclipse中,红色按钮变为禁用,但“重新运行测试”仍然保持启用状态。没有失败的痕迹,我也看不到指示测试成功的绿色条。这里面的任何指针都会有帮助

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)
终止执行。朱尼特显然不喜欢那样。我用
return
语句替换了
System.exit(0)
,它就像一个符咒。
解决了这个问题后,我进一步的问题是,Junit不喜欢System.exit(0)背后的逻辑是什么?退出(0)表示进程的干净退出或顺利执行(无任何报警),很好!那么Junit不应该这样吗?

请给出一个简短但完整的示例来演示这个问题。你可能会认为测试写得很好——但这并不意味着它一定是……谢谢你阅读Jon Skeet。这是代码(我用代码编辑了文章),我在类中没有看到
RunWith
注释-这是故意的吗?我以前没有使用过RunWith注释。我怀疑eclipse和库设置,但这不是问题所在。我快速阅读了Runwith注释,但请注意,我如何在这个测试中添加Runwith?再次感谢您的时间。我一直在Eclipse中使用
@RunWith(JUnit4.class)
,但实际上可能并不需要这样做。(现在将进行测试。)如果您将测试更改为不实际测试jar文件中的任何内容-例如,更改为
String userInput=“不是有效值”然后你能测试吗?是的,我确定了。无论如何,谢谢。据我所知,这将立即退出当前进程,可能是junit测试运行程序。并不是说朱尼特不喜欢它,它从来没有机会谈论它。