Как да покажа изход 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 Регистрирането работи добре, но би било страхотно, ако всеки от файловете с отчет за сигурния файл показва изхода на журнала за съответния си тест, както се прави при използване на 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
Използвах surefire 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