2011-09-07 26 views
5

Al ejecutar pruebas unitarias, Gradle puede ejecutar múltiples pruebas en paralelo sin ningún cambio en las pruebas (es decir, anotaciones especiales, corredores de prueba, etc.). Me gustaría lograr lo mismo con la hormiga, pero no estoy seguro de cómo.Ejecutar pruebas JUnit en paralelo

He visto this question pero ninguna de las respuestas realmente me atrae. O bien involucran hacks con ant-contrib, corredores especiales configurados con la anotación @RunWith, algunas otras anotaciones especiales, etc. También conozco TestNG, pero no puedo hacer que el plugin de Eclipse migre nuestras pruebas, y tenemos alrededor de 10,000, ¡así que no lo hago a mano!

Gradle no necesita nada de esto, así que ¿cómo lo hago en hormiga? Supongo que Gradle usa un corredor especial, pero si es así, está configurado como parte de la configuración de JUnit, y no se menciona en cada prueba individual. Si ese es el caso, entonces está bien. Simplemente no quiero ir y modificar c. 10,000 pruebas unitarias!

Respuesta

6

Gradle no utiliza un corredor JUnit especial en el sentido estricto de la palabra. "Simplemente" tiene una tarea de prueba sofisticada que sabe cómo hacer girar varias JVM, ejecutar un subconjunto de clases de prueba en cada una de ellas (invocando a JUnit) e informar los resultados a la JVM que ejecuta la compilación. Allí los resultados se agregan para que parezca una ejecución de prueba de una única JVM y un único subproceso. Esto incluso funciona para compilaciones que definen sus propios oyentes de prueba.

Para obtener la ejecución de prueba paralela en Ant, necesitaría una tarea Ant que admita esta característica (no estoy seguro si existe). Una alternativa es importar su compilación Ant en Gradle (ant.importBuild "build.xml") y agregar una tarea de prueba en el lado de Gradle.

+0

Hmmm, esa es una idea interesante. Me sorprende que tal cosa ya no exista en Ant, para ser honesto. – dty

Cuestiones relacionadas