在 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 中运行此测试时,我只得到带有异常的故障跟踪。我希望在控制台上打印一些有关实际失败的信息,例如:
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);
}
最佳答案
您可以 try catch ComparisonFailure :
@Test
public void someSimpleTest() {
try {
Assert.assertEquals("123", "456");
} catch(ComparisonFailure e) {
System.out.println(e.getMessage());
}
}
您还可以使用 getActual() 和 getExpected()。更多文档 here
关于java - 在控制台中显示失败的 JUnit 测试的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29534204/