我使用log4j,并希望日志消息通常最终在我的日志工具中出现在由TestNG在我的单元测试期间创建的测试报告中。是否有与TestNG连接的log4j appender?
我认为这将意味着输出到TestNG Listener
的log4j Appender
以及我的Maven项目的src/test/resources目录中的相应log4j配置。那是对的吗?
写起来似乎相当容易,但是我可以通过Maven插入吗?
我使用log4j,并希望日志消息通常最终在我的日志工具中出现在由TestNG在我的单元测试期间创建的测试报告中。是否有与TestNG连接的log4j appender?
我认为这将意味着输出到TestNG Listener
的log4j Appender
以及我的Maven项目的src/test/resources目录中的相应log4j配置。那是对的吗?
写起来似乎相当容易,但是我可以通过Maven插入吗?
嗯,是的,它有助于自己写一些东西,但我正在寻找一个现成的插件或其他东西。尽管如此,仍然有用。 –
我有同样的问题,并最终编码一个appender自己。这其实是很简单:
复制下面的类:
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%
这StackOverflow的线程可能是相关的提问: http://stackoverflow.com/questions/473911/testng-multiple-suites-possible-to-merge-reports – Adrian