Как отобразить вывод log4j в отчетах о верных тестах

Когда тест терпит неудачу в maven, xml-файлы верного теста в target/surefire-reports/TEST-<test-name>.xml показывают только стандартный вывод System.output или стандартную ошибку System.err

Когда я использую jdk java.util.logging.Logger, все журналы отображаются в стандартной ошибке <system-err> tag, но не отображаются, когда я использую log4j.

Ведение журнала с помощью log4j работает нормально через FileAppender и ConsoleAppender. Он отображается в полном выводе консоли, но не в отдельных файлах отчетов о тестировании.

  • Могу ли я настроить log4j для перенаправления его вывода на System.out, чтобы он отображался в надежных отчетах?
  • Могу ли я сказать, чтобы surefire также отображал журнал отладки log4j?

person Serxipc    schedule 07.12.2010    source источник
comment
Можете ли вы уточнить, что вы просите? Вы хотите включить отладку во время тестов? Вы хотите отдельные файлы журнала для каждого теста?   -  person Jonathan S. Fisher    schedule 30.08.2011
comment
@cj91 cj91 Ведение журнала работает нормально, но было бы здорово, если бы каждый из файлов отчета о верности показывал вывод журнала для соответствующего теста, как это происходит при использовании java.util.logging.   -  person Serxipc    schedule 30.08.2011


Ответы (2)


  • Вариант первый:

    Для стандартного ведения журнала (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.

person carlspring    schedule 30.08.2011
comment
Я использовал уверенный фаер 2.6. После обновления до 2.9 он работает как положено, оставив все остальное нетронутым. - person Serxipc; 30.08.2011
comment
Конфигурация приложения консоли log4j2 по умолчанию имеет тенденцию приводить к предупреждениям Corrupted STDOUT (по крайней мере, для версий с 2.9 по 2.11) в более новых версиях surefire. Когда это происходит, искаженный вывод попадает в такие файлы, как 2019-06-13T21-39-26_964-jvmRun1.dump. Установка follow=true в консольном приложении решила эту проблему для нас. - person René; 14.06.2019

Обновите версию плагина surefire.

В версии 2.9 вывод log4j отображается в <system-out> при использовании ConsoleAppender.

person Serxipc    schedule 30.08.2011