maven - 使 Maven Surefire 不重定向测试标准错误输出
问题描述
我使用 Strace 分析 JUnit 测试。为了正确地做到这一点,我使用 java.util.logging.Logger 记录了几个 JUnit 事件(beforeEach、afterEach、...)。Java logger 和 Strace 都写入 stderr,这是应该的,而实际的测试结果应该输出到 stdout。当我直接使用 Java 运行测试时,一切都按预期工作,但是当我使用 maven surefire 时,stdout 输出是正确的,而测试 stderr 输出会自动重定向到 surefire-reports 文件夹中的 .xml 文件,我最终在 stderr 输出中只有来自 Strace 的数据。
有没有办法告诉 Maven Surefire 不要重定向标准错误?
这是我的 Maven 肯定配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.3.2</version>
</dependency>
</dependencies>
<configuration>
<forkCount>1</forkCount>
<reuseForks>false</reuseForks>
<argLine>-Xmx1024m -XX:MaxPermSize=256m</argLine>
<useFile>true</useFile>
</configuration>
</plugin>
解决方案
尝试<redirectTestOutputToFile>
明确设置为false
. 也许默认值false
会以某种方式被覆盖。
推荐阅读
- angularjs - 如何获取动态生成的选择框的值
- c# - 如何在相同的有界上下文中将查询数据库与命令数据库同步?
- batch-file - 如何选择除了pendrive 以外的可用驱动器进行备份操作?
- android - 在 android 中使用改造获取 API 响应标头作为 POJO
- node.js - 能否在 Oracle Mobile Hub 自定义 API 中使用 node-oracledb 插件?
- c# - 如何以字符串格式写入文本框值
- django - python:无法打开文件'manage.py':[Errno 2]没有这样的文件或目录
- ios - Xcode 故事板:如何使用 10 多个文本字段适应不同的屏幕尺寸
- postgresql - 数字类型的无效输入语法:“1,257.00”
- go - Golang govmomi 按资源池过滤虚拟机