2012-07-11 35 views
5

¿Hay alguna manera de llamar al comando 'prueba' de maven que solo ejecuta las pruebas que fallaron la última vez que se llamó?Maven 'test' comando que solo ejecuta las pruebas que fallaron

+0

No lo creo, ya que requeriría persistir la salida de prueba y volver a cargarla. También es arriesgado, ya que cambiar una clase que no sea de prueba para pasar una prueba debe ejecutar todas las pruebas asociadas de todos modos, no solo las fallas previas. –

+0

Esto suena como un trabajo para el IDE que es usualmente compatible con Ecilpse, Netbeans o IntelliJ .. – khmarbaise

Respuesta

5

Pruebe usar el parámetro runOrder del plugin surefire. No se ve como que tiene un ${expression} que le permite cambiar la propiedad de la línea de comandos, así que rodaría la mía:

... POM stuff here.... 
<properties> 
    <!-- plugin's default value for this param --> 
    <surefire.test.runOrder>filesystem</surefire.test.runOrder> 
</properties> 
.... 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <configuration> 
    <runOrder>${surefire.test.runOrder}</runOrder> 
    </configuration> 
</plugin> 
.... 

entonces puede optar por el ajuste que desee en la línea de comandos:

mvn -Dsurefire.test.runOrder=failedfirst test (o package o la fase que desee).

+0

+1 para algo nuevo que aprendí hoy – Raghuram

+0

Esto no funcionó para mí. Ejecuté todas las pruebas la primera vez, todas pasaron. Luego ejecuté el comando que sugirió, pero en los resultados, dijo que ejecutó todas las pruebas nuevamente. – Glide

+0

Intente modificar una de las pruebas que normalmente se ejecuta al final para que falle. Luego repite tu prueba. El que falló tuvo que ejecutarse primero, seguido de todos los demás. La configuración sugerida no ejecuta SOLAMENTE pruebas fallidas, primero ejecuta fallas. Como su ejecución de prueba no incluyó las pruebas fallidas, todas se ejecutaron nuevamente. – user944849

Cuestiones relacionadas