一尘不染

如何使JUnit打印断言结果

java

如何获得要打印到[标准输出]的JUnit断言的结果?

我有一些像这样的测试:

@Test
public void test01()
{
    Position p = getPositionAt('a', 1);
    assertNotNull("a1 exists", p);
    assertNotNull("figure exists a1", p.getFigure());

    p = getPositionAt('a', 2);
    assertNotNull("exists a2", p);
    assertNull("figure exists a2", p.getFigure());

    p = getPositionAt('b', 1);
    assertNotNull("exists b1", p);
    assertNull("figure exists b1", p.getFigure());
}

这是我希望获得的打印输出格式:

a1 exists -success
figure exists a1 -success
exists a2 -success
figure exists a2 -succcess
exists b1 -succcess
figure exists b1 -failed

是否可以使用runners和进行此操作suites?或是否存在任何assertSuccess()assertFailed()方法?


阅读 368

收藏
2020-12-03

共1个答案

一尘不染

首先,您有两个问题,而不是一个。断言失败时,将AssertionError引发异常。这样可以防止检查超过此点的任何断言。为了解决这个问题,您需要使用ErrorCollector

其次,我不认为JUnit内置了任何方法来执行此操作。但是,您可以实现包装断言的自己的方法:

public static void assertNotNull(String description, Object object){
     try{
          Assert.assertNotNull(description, object);
          System.out.println(description + " - passed");
     }catch(AssertionError e){
          System.out.println(description + " - failed");

        throw e;
     }
}
2020-12-03