问题描述
我使用Strace分析JUnit测试。为了正确执行此操作,我使用java.util.logging.Logger记录了几个JUnit事件(beforeEach,afterEach等)。 Java记录器以及Strace都应该将其写入stderr,而实际的测试结果应该输出到stdout。 当我直接使用Java运行测试时,一切都按预期工作,但是当我使用maven surefire时,stdout输出是正确的,而测试stderr输出会自动重定向到surefire-reports文件夹中的.xml文件,最终在stderr输出中仅包含来自Strace的数据。
有没有办法告诉Maven Surefire不要重定向标准错误?
这是我的maven surefire配置:
<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
的默认值以某种方式被覆盖了。