2008-11-29 25 views
14

Tôi đang sử dụng Junit 4.4 và Ant 1.7. Nếu một trường hợp thử nghiệm không thành công với một lỗi (ví dụ vì một phương thức đã ném một ngoại lệ không mong muốn), tôi không nhận được bất kỳ chi tiết nào về lỗi đó.JUnit không cung cấp thông tin về "lỗi"

build.xml của tôi trông như thế này:

<target name="test" depends="compile"> 
<junit printsummary="withOutAndErr" filtertrace="no" fork="yes" haltonfailure="yes" showoutput="yes"> 
    <classpath refid="project.run.path"/> 
    <test name="a.b.c.test.TestThingee1"/> 
    <test name="a.b.c.test.NoSuchTest"/> 
</junit> 
</target> 

Khi tôi chạy "ant test" nó nói (ví dụ) 2 thử nghiệm chạy, 0 thất bại, 1 lỗi. Nó không nói "Không có thử nghiệm như NoSuchTest" mặc dù điều này là hoàn toàn hợp lý và sẽ cho tôi tìm ra nguyên nhân của lỗi.

Cảm ơn!

-Dan

Trả lời

31

đặn nó ra :)

tôi cần phải thêm một "định dạng" bên trong khối junit.

<formatter type="plain" usefile="false" /> 

PITA là gì.

-Dan

+0

+1 Tôi vừa gặp lỗi này và điều này hoạt động hoàn hảo. Cảm ơn! –

+0

trợ giúp rất lớn, cảm ơn! – jsh

6

Nếu bạn đang đi để có nhiều bài kiểm tra có hai sự thay đổi bạn có thể muốn xem xét:

  1. chạy tất cả các bài kiểm tra chứ không phải dừng lại tại các lỗi đầu tiên
  2. tạo một báo cáo hiển thị tất cả các bài kiểm tra kết quả

Và nó là khá dễ dàng để làm với các nhiệm vụ junitreport:

<target name="test"> 
    <mkdir dir="target/test-results"/> 
    <junit fork="true" forkmode="perBatch" haltonfailure="false" 
      printsummary="true" dir="target" failureproperty="test.failed"> 
     <classpath> 
      <path refid="class.path"/> 
      <pathelement location="target/classes"/> 
      <pathelement location="target/test-classes"/> 
     </classpath> 
     <formatter type="brief" usefile="false" /> 
     <formatter type="xml" /> 
     <batchtest todir="target/test-results"> 
      <fileset dir="target/test-classes" includes="**/*Test.class"/> 
     </batchtest> 
    </junit> 

    <mkdir dir="target/test-report"/> 
    <junitreport todir="target/test-report"> 
     <fileset dir="target/test-results"> 
      <include name="TEST-*.xml"/> 
     </fileset> 
     <report format="frames" todir="target/test-report"/> 
    </junitreport> 

    <fail if="test.failed"/> 
</target> 
Các vấn đề liên quan