Fly*_*ard 5 java junit log4j junit-rule
我想设置我的测试日志,以便主要抑制日志输出 - 除非测试失败。然后我想要调试输出。
我知道只修改测试类路径中的 log4j.properties 的手动解决方案,或者只是让调试日志记录始终对测试处于活动状态 - 但我不想用不需要的绿色测试输出向控制台发送垃圾邮件。
对于失败的测试,我希望自动构建为我提供调试输出,以防出现一些奇怪的环境问题。
我一直在想应该有一个 appender 可以与 junit 规则结合使用,该规则在测试结果已知之前抑制输出,然后只有在测试失败时才推迟记录到另一个 appender。
我可能自己做这个,但我想知道是否有人以前尝试过这个,或者是否有更好的解决方案。
您可以添加一个记录到单独记录器的观察程序。
public class MyUnitTest {
private static Logger errorLog = Logger.getLogger("ErrorLogger");
@Rule
public TestWatcher testWatcher = new TestWatcher() {
@Override
protected void failed(Throwable e, Description description) {
errorLog.debug(description.toString(), e);
super.failed(e, description);
}
};
}
Run Code Online (Sandbox Code Playgroud)
然后只需添加ErrorLogger到您的 log4j 属性
log4j.logger.ErrorLogger=debug, someAppender
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
815 次 |
| 最近记录: |