2008-11-29 11 views
14

Ich benutze Junit 4.4 und Ant 1.7. Wenn ein Testfall mit einem Fehler fehlschlägt (z. B. weil eine Methode eine unerwartete Ausnahme ausgelöst hat), erhalte ich keine Details über den Fehler.JUnit gibt keine Informationen bezüglich "Fehler"

Mein build.xml sieht wie folgt aus:

<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> 

Wenn ich laufen "ant-Test", heißt es (zum Beispiel) 2 Testläufe, 0 Ausfälle, 1 Fehler. Es heißt nicht "Es gibt keinen solchen Test wie NoSuchTest", obwohl dies völlig vernünftig ist und ich die Ursache des Fehlers herausfinden könnte.

Danke!

-Dan

Antwort

31

es heraus :)

Ich brauchte eine "Formatierer" innerhalb des junit Block hinzuzufügen.

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

Was für ein PITA.

-Dan

+0

+1 Ich hatte gerade diesen Fehler und das hat perfekt funktioniert. Vielen Dank! –

+0

große Hilfe, danke! – jsh

6

Wenn Sie eine Menge Tests haben werden es zwei ändern Sie vielleicht zu berücksichtigen:

eher
  1. laufen alle Tests als
  2. beim ersten Fehler stoppen
  3. erstellen einen Bericht all Test zeigt Ergebnisse

Und es ist ziemlich einfach, mit der junitreport Aufgabe zu tun:

<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> 
Verwandte Themen