2008-11-29 12 views
14

Estoy usando Junit 4.4 y Ant 1.7. Si un caso de prueba falla con un error (por ejemplo, porque un método arrojó una excepción inesperada) no obtengo ningún detalle sobre cuál fue el error.JUnit no proporciona información sobre "errores"

Mi build.xml se ve así:

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

Cuando corro "ant test" que dice (por ejemplo) 2 ejecuciones de prueba, 0, 1 error fracasos. No dice "No existe tal prueba como NoSuch Test", aunque esto es completamente razonable y me permitiría descubrir la causa del error.

Gracias!

-Dan

Respuesta

31

lo descubrió :)

que tenía que añadir un "formateador" dentro del bloque de JUnit.

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

What a PITA.

-Dan

+0

+1 Acabo de tener este error y esto funcionó a la perfección. ¡Gracias! –

+0

gran ayuda, gracias! – jsh

6

Si usted va a tener una gran cantidad de pruebas que hay dos cambios es posible que desee considerar:

  1. ejecutar todas las pruebas en lugar de detenerse en el primer error
  2. crear un informe que muestra todos los resultados de la prueba

Y es bastante fácil de hacer con la tarea 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> 
Cuestiones relacionadas