2009-06-08 4 views
17

Ant에서 JUnit을 구성하여 각 빌드에서 단위 테스트를 실행합니다. 의 출력 결과가 실행될 때마다 테스트가 Ant 콘솔 출력에 인쇄되지 않도록하고 싶습니다. 나는 후속 테스트의 결과물을 볼 필요가 없다. 여기 JUnit Ant 태스크가 실패시에만 출력을 생성하도록 구성하려면 어떻게해야합니까?

은 내 build.xml 파일 관련 비트 :

: 이것은 내가 원하는 거의 무엇을 생산

<junit> 
    <classpath> 
     <pathelement path="${build}"/> 
    </classpath> 
    <formatter type="brief" usefile="false"/> 
    <batchtest> 
     <fileset dir="${src}" includes="my/tree/junit/"/> 
    </batchtest> 
</junit> 

, 실패한 테스트가 성공 테스트는 다음과 같은 출력을 쓰기를 제외하고는 개미 출력에 자세히 설명되어 있습니다

    :
     [junit] Testsuite: my.tree.junit.ExampleTest 
        [junit] Tests run: 7, Failures: 0, Errors: 0, Time elapsed: 0.002 sec

    은 내가 포함한 JUnit task 문서에 나열된 모든 조합을 시도 믿는다 type

내 유스 케이스의 각 종류에

  • printsummary 속성
  • showoutput 속성
  • formatter 요소는 명령 줄에서 ant을 실행 중입니다. 더 많은 테스트를 작성할 때, 후속 테스트의 출력이 너무 커서 실패한 테스트의 출력이 화면에서 벗어나는 것을 원하지 않습니다. 내 관심을 필요로하는 실패한 테스트가 아니면 그냥 ant 조용히하고 싶습니다. 어떻게하면 Ant/JUnit을 구성 할 수 있습니까?

    저는 Ant 버전 1.6.4와 JUnit 4.6을 사용하고 있습니다.

  • +0

    사용자 정의 JUnit 사용자 정의 테스트 러너 가능성이 추가되었습니다. – VonC

    답변

    13

    가능성은 'classname'속성 (및 org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter 확장, endTest() or endTestsuite() methods에 아무런 영향을 미치지 않음)을 사용하여 XML 포맷터를 정의하는 것입니다.
    이 포맷터는 정보 메시지를 무시하고 오류 메시지 만 표시합니다.


    참고 :

    <junit showoutput="true" 
         fork="true" 
         failureproperty="tests.failed" 
         errorproperty="tests.failed"> 
        <batchtest todir="${test.results.dir}"> 
         <fileset dir="test"> 
          <include name="**/*Test.java"/> 
         </fileset> 
        </batchtest> 
        <classpath path="${classes.dir}:${junit.jar}:${test.classes.dir}"/> 
        <formatter usefile="false" type="brief"/> 
        <!-- <formatter type="xml"/> If missing, only displays failed tests --> 
    </junit> 
    

    는 당신이 테스트나요 : this settings 만 표시 실패한 테스트의 가능성을 언급?

    참고 : 개미 Juint 테스트 러너를 정의하는 것이 recent (February 2012) ticket)


    또 다른 approch에 의해 그림과 같이가 "showoutput="true"<formatter type="brief" usefile="false"/>는"개미 JUnitResultFormatter을 지원하고, 약간의 문제가 될 수 있으며, stderr 메시지 만 표시합니다.

    이클립스의 EclipseTestRunner이 좋은 예입니다.

    +0

    아주 좋은 대답입니다! – guerda

    +0

    감사합니다. 본인이 보여준 예제는 본질적으로 내 질문에 게시 한 것과 동일하므로 차이점이 Netbeans 컨텍스트에서 실행하는 것과 관련이 있다고 생각합니다. 커스텀 포매터를 구현하려고 노력 하겠지만, 그렇게하지 않아도 되길 바랬습니다. –

    +0

    맞춤형 포맷터를 구현하고 원래 목표를 달성 할 수있었습니다. –

    관련 문제