2010-12-07 8 views
12

maven에서 테스트가 실패하면 target/surefire-reports/TEST-<test-name>.xml의 확실한 테스트 보고서 xml 파일에 표준 출력 System.output 또는 표준 오류 만 표시 System.err 확실한 테스트 보고서에 log4j 출력을 표시하는 방법

jdk java.util.logging.Logger를 사용하면 표준 로깅 <system-err> tag의 모든 로깅이 표시되지만 표시되지 않습니다. log4j를 사용할 때.

log4j 로깅은 FileAppender와 ConsoleAppender를 통해 잘 작동합니다. 전체 콘솔 출력에는 표시되지만 개별 테스트 보고서 파일에는 표시되지 않습니다.

  • log4j의 출력을 System.out으로 리디렉션하도록 구성하여 확실한 rerports에 표시되도록 할 수 있습니까?
  • log4j 디버그 로깅도 표시하도록 확실하게 말할 수 있습니까?
+0

를 사용하는 경우

버전 2.9을 사용하여 Log4j의 출력은 <system-out>에 나타납니다? 테스트 중에 디버그를 사용 하시겠습니까? 각 테스트마다 개별 로그 파일을 원하십니까? –

+1

@ cj91 로깅은 정상적으로 작동하지만 java.util.logging을 사용할 때와 같이 각각의 확실한 보고서 파일에 해당 테스트에 대한 로그 출력이 표시되면 좋을 것입니다. – Serxipc

답변

2

surefire 플러그인 버전을 업데이트하십시오. 당신은 당신이 요구하는지 명확히 할 수있는 ConsoleAppender를

13
  • 옵션 하나를

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

    이 각 출력 파일을 생성합니다 : 표준 로깅 (System.out에/System.err에) 들어

    , 당신은 다음과 같은 출력을 할 수 있습니다 테스트.

  • 옵션 2 : 사용자 정의의 log4j.xml/log4j.properties를 만들고 단순히 SRC/테스트/자원 아래에 배치 할 수있는 log4j 구성을 위해

    .

+1

나는 surefire 2.6을 사용하고 있었다. 2.9로 업데이트 한 후 예상대로 작동하여 나머지는 그대로 둡니다. – Serxipc

+0

확실한 2.20에서 작동하지 않습니다. –

관련 문제