java里怎样将junit测试结果输出到日志

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java里怎样将junit测试结果输出到日志相关的知识,希望对你有一定的参考价值。

java里怎样将junit测试结果输出到日志

  引用log4j的jar包,然后在日志的配置文件设置好日志输出级别,在需要输出日志的类中,定义Logger的实例。如:

Logger logger=Logger.getLogger(this.getClass());
logger.debug("Test");
参考技术A Logger logger=Logger.getLogger(this.getClass());

logger.info(date);追问

就这样就行了?写在java里报错啊

追答

引用下log4j的包

追问

引用了还是不得行,还是要报错

追答

报什么错。

Java 单元测试如何断言(检查)控制台输出

关于在 JUnit 单元测试中如何断言某个函数的控制台输出已是我一个长久的问题. 虽然有控制台输出的函数有了副作用, 不能称之为一个纯函数, 在讲求函数式编程的今天, 纯函数是最好测试的, 所谓的 Data In, Data Out. 但总还是有这样的需求, 比如自己实现的某个日志框架的 Appender, 需要验证它向控制台的输出内容.

我先前在项目中的办法是, 先把把标准输出定向到一个 ByteArrayOutputStream 中去, 完后把这个流转成字符串来断言它的内容, 最后恢复标准输出为 System.out, 代码如下:

ByteArrayOutputStream output = new ByteArrayOutputStream();
System.setOut(new PrintStream(output));

System.out.print("Hello");

assertThat(output.toString(), is("Hello");
System.setOut(System.out);

这样也能完成任务, 本质也是对的, 但稍显复杂了些. 今天读 Spring in Action 一书, 发现它用了 StandardOutputStreamLog 这个 JUnit 的 @Rule, 来自于 System Rules. 其实 StandardOutputStreamLog 类已不推荐使用, 取而代之的是 SystemOutRule, 所以应用 SystemOutRule 来断言控制台输出的测试方法就是 阅读全文 >>


以上是关于java里怎样将junit测试结果输出到日志的主要内容,如果未能解决你的问题,请参考以下文章

maven中执行JUnit测试的时候,我使用log4j进行日志打印,怎样才能获取log4j打印的日志?

怎样使用java swing画一个表格,把输出显示到表格上,而且每10秒自动刷新一次

怎样实现把java显示的结果在EXCEL中输出

oj判断机制:程序怎样输入多组测试数据

如何将JUnit测试结果写入日志文件

如何在Gradle中使用JUnit 5?