2011-09-07 5 views
5

Lors de l'exécution de tests unitaires, Gradle peut exécuter plusieurs tests en parallèle sans modifier les tests eux-mêmes (par exemple, annotations spéciales, coureurs de test, etc.). Je voudrais faire la même chose avec fourmi, mais je ne sais pas comment.Exécuter des tests JUnit en parallèle

J'ai vu this question mais aucune des réponses ne m'attire vraiment. Ils impliquent soit des hacks avec ant-contrib, des coureurs spéciaux configurés avec l'annotation @RunWith, d'autres annotations spéciales, etc. Je suis également au courant de TestNG, mais je ne peux pas faire migrer le plugin Eclipse par nos tests - et nous en avons environ 10 000 donc je ne le fais pas à la main!

Gradle n'a pas besoin de tout ce genre de choses, alors comment le faire dans la fourmi? Je suppose que Gradle utilise un coureur spécial, mais si c'est le cas, il est mis en place dans le cadre de la configuration JUnit, et non mentionné sur chaque test. Si c'est le cas, alors ça va. Je ne veux pas vraiment aller et modifier c. 10 000 tests unitaires!

Répondre

6

Gradle n'utilise pas de coureur JUnit spécial au sens strict du terme. Il "a simplement" une tâche de test sophistiquée qui sait comment lancer plusieurs JVM, exécuter un sous-ensemble de classes de test dans chacun d'entre eux (en appelant JUnit), et reporter les résultats à la JVM qui exécute la construction. Là, les résultats sont agrégés pour donner l'apparence d'une exécution de test mono-thread JVM unique. Cela fonctionne même pour les builds qui définissent leurs propres auditeurs de test. Pour obtenir l'exécution de test en parallèle dans Ant, vous auriez besoin d'une tâche Ant qui prend en charge cette fonctionnalité (pas sûr s'il en existe une). Une alternative consiste à importer votre build Ant dans Gradle (ant.importBuild "build.xml") et ajouter une tâche de test sur le côté Gradle.

+0

Hmmm, c'est une idée intéressante. Je suis surpris qu'une telle chose n'existe pas déjà chez Ant, pour être honnête. – dty

Questions connexes