在JUnit(4.x)测试用例中,我想获取一些日志信息,以防其中一个断言失败。假设这是测试类:
package a.b.c.d;
import org.junit.Assert;
import org.junit.Test;
public class SomeTestClass {
@Test
public void someSimpleTest() {
Assert.assertEquals("123", "456");
}
}
显然,Assert.assertEquals("123", "456");
会失败。当我从Eclipse中运行此测试时,我只获得具有异常的Failure Trace。我想在控制台上打印一些关于实际失败的信息,例如:
Expected Value: "123"; Actual Value "456";
在互联网上搜索我偶然发现这个例子提供了我需要的信息。但是,我无法在控制台中获取此日志输出。
org.junit.ComparisonFailure: expected:<gradle is gr[8]> but was:<gradle is gr[eat]>
at org.junit.Assert.assertEquals(Assert.java:115)
at org.junit.Assert.assertEquals(Assert.java:144)
at com.mrhaki.gradle.SampleTest.sample(SampleTest.java:8)
到目前为止,我尝试的是下面的内容,但没有帮助。
-Djava.util.logging.ConsoleHandler.level=FINEST
static {
Logger.getGlobal().setLevel(Level.FINEST);
}
答案 0 :(得分:0)
您可以尝试捕捉ComparisonFailure:
@Test
public void someSimpleTest() {
try {
Assert.assertEquals("123", "456");
} catch(ComparisonFailure e) {
System.out.println(e.getMessage);
}
}
您还可以使用getActual()和getExpected()。更多文档here