我使用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