Java 如何使用Junit4获取故障跟踪

Java 如何使用Junit4获取故障跟踪,java,junit,static-assert,Java,Junit,Static Assert,在我的Junit测试中,我通常使用“AssertEquals”,当测试失败时,跟踪将正确地显示在Junit/eclipse的失败跟踪中 我想知道如何让这些跟踪显示在文件中 @Test public void testButtons() { SelectionButton().ButtonFile(); assertEquals("selected button should be edit",FILE.EDIT,File.getSelectedItem);

在我的Junit测试中,我通常使用“AssertEquals”,当测试失败时,跟踪将正确地显示在Junit/eclipse的失败跟踪中 我想知道如何让这些跟踪显示在文件中

@Test 
  public void testButtons() { 
       SelectionButton().ButtonFile();
       assertEquals("selected button should be edit",FILE.EDIT,File.getSelectedItem);
  } 
如何在文件中打印/重定向断言失败跟踪?
谢谢

JUnit的
assertEquals
方法抛出了一个
AssertionError
,没有错误消息。如果要记录有关故障的更多信息,您必须捕获
AssertionError
,如:

try{
    assertEquals(true, true);
}catch (AssertionError ex) {
    //Do Something
    throw(ex);
}

我试图从eclipse设置一个输出文件,但是当测试失败时,断言跟踪只显示在failure trace视图中,而不显示在文件中。它对我有效,谢谢。所以我们可以使用try/catch和assert?所以我可以对所有断言使用catch(AssertionError ex)?您可以这样做,但这通常不是好的做法,因为如果您不在catch部分末尾抛出异常,测试将错误通过。通常您的测试不应该失败,对吗?当您编写断言(预期的、实际的)(任何类型)时,您都希望实际部分与预期部分相同。如果不是这种情况,那么您正在测试的代码部分是错误的,您应该查看那里,不要尝试在测试中添加更多日志记录。单元测试不应该向您提供堆栈跟踪或调试信息,Eclipse无论如何都会这样做,以便您更轻松地开始调试。好的,Dave,因此junit测试可以有以下内容:@BeforeClass public static void setUpBeforeClass()抛出异常{startappli();}@test public void test1(){try{clickButton();assertEquals(true,true);}catch(AssertionError-ex){//something}