java - 在控制台中显示失败的 JUnit 测试的结果

标签 java eclipse junit

在 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/

相关文章:

java - eclipse 3.4无法启动

java - 模拟初始上下文

java - 我们如何使用 MongoDB Java 驱动程序追加/更新 MongoDB 中集合的子文档?

java - 如何让 Java 应用程序订阅 NServiceBus 发布者?

java - solr中如何从数据库中获取数据

java - 使用 JSON 发送请求返回错误 405 :Method not allowed

eclipse - 最佳待办事项 list 管理软件

java - 为什么我的 while 进入无限循环?我如何解决它?

java - MessageBoxProvider 的 Junit

spring-boot - Java 单元测试给出 NullPointer 异常