如何在surefire测试报告中显示log4j输出

时间:2010-12-07 18:05:30

标签: log4j maven surefire

当测试在maven中失败时,target/surefire-reports/TEST-<test-name>.xml中的surefire测试报告xml文件仅显示标准输出System.output或标准错误System.err

当我使用jdk java.util.logging.Logger标准错误<system-err> tag中的所有日志记录显示时,但是当我使用log4j时它没有显示。

log4j的日志记录通过FileAppender和ConsoleAppender正常工作。它显示在完整的控制台输出中,但不显示在各个测试报告文件中。

  • 我是否可以将log4j配置为将其输出重定向到System.out,以便在surefire rerport中显示?
  • 我可以告诉surefire还显示log4j调试日志记录吗?

2 个答案:

答案 0 :(得分:12)

  • 选项一:

    对于标准日志记录(System.out / System.err),您可以输出以下内容:

        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.8.1</version>
    
            <configuration>
                <redirectTestOutputToFile>true</redirectTestOutputToFile>
            </configuration>
        </plugin>
    

    这将为每个测试生成输出文件。

  • 选项二:

    对于log4j配置,您可以创建自定义log4j.xml / log4j.properties并将其放在src / test / resources下。

答案 1 :(得分:1)

更新surefire插件版本。

使用版本2.9时,使用ConsoleAppender时,log4j输出显示在<system-out>