16

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

当我使用 jdk 时,java.util.logging.Logger所有日志都显示在 Standard Error<system-err> tag中,但是当我使用 log4j 时它没有显示。

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

  • 我可以配置 log4j 将其输出重定向到,System.out以便它显示在surefire报告中吗?
  • 我可以告诉surefire也显示log4j调试日志吗?
4

2 回答 2

15
  • 选项一:

    对于标准日志记录 (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 下。

于 2011-08-30T15:06:40.957 回答
1

更新surefire插件版本。

<system-out>使用 2.9 版时,使用 ConsoleAppender 时会出现 log4j 输出

于 2011-08-30T17:05:10.793 回答