我使用log4j,希望在单元测试期间由TestNG创建的测试报告中出现日志消息,这些消息通常会出现在我的日志工具中。
我认为这意味着输出到Maven项目的src/ log4j / Appender
目录中的TestNG Listener
和适当的log4j配置的测试资源。对吗?
它看起来很容易写,但是有没有什么东西我可以通过Maven拉进来的呢?
发布于 2014-01-13 14:21:40
我也遇到了同样的问题,最终我自己编写了一个附加器。它实际上非常简单:
复制以下类:
public class TestNGReportAppender extends AppenderSkeleton {
@Override
protected void append(final LoggingEvent event) {
Reporter.log(eventToString(event));
}
private String eventToString(final LoggingEvent event) {
final StringBuilder result = new StringBuilder(layout.format(event));
if(layout.ignoresThrowable()) {
final String[] s = event.getThrowableStrRep();
if (s != null) {
for (final String value : s) {
result.append(value).append(Layout.LINE_SEP);
}
}
}
return result.toString();
}
@Override
public void close() {
}
@Override
public boolean requiresLayout() {
return true;
}
}
并将其配置为像控制台附加器一样。例如:
log4j.appender.testNG=some.package.TestNGReportAppender
log4j.appender.testNG.layout=org.apache.log4j.EnhancedPatternLayout
log4j.appender.testNG.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%
发布于 2009-10-23 14:56:42
这篇文章也可能会对你有所帮助:
"Integrate commons-logging output with testNG test case reports“
https://stackoverflow.com/questions/1574139
复制相似问题