2011-09-07 26 views
5

Durante l'esecuzione di test di unità, Gradle può eseguire più test in parallelo senza alcuna modifica ai test stessi (ad esempio annotazioni speciali, test runner, ecc.). Mi piacerebbe ottenere la stessa cosa con la formica, ma non sono sicuro di come.Eseguire test JUnit in parallelo

Ho visto this question ma nessuna delle risposte mi piace molto. Coinvolgono o hack con ant-contrib, runner speciali impostati con l'annotazione @RunWith, altre annotazioni speciali, ecc. Sono anche a conoscenza di TestNG, ma non riesco a fare in modo che il plug-in Eclipse migri i nostri test - e ne abbiamo circa 10.000 quindi non lo faccio a mano!

Gradle non ha bisogno di queste cose, quindi come faccio a farlo? Immagino che Gradle usi un runner speciale, ma se è così, è configurato come parte del setup di JUnit e non viene menzionato in ogni singolo test. Se è così, allora va bene. Non voglio davvero andare a modificare c. 10.000 test di unità!

risposta

6

Gradle non utilizza uno speciale JUnit runner nel senso stretto della parola. "Semplicemente" ha una sofisticata attività di test che sa come far girare più JVM, eseguire un sottoinsieme di classi di test in ciascuna di esse (invocando JUnit) e riportare i risultati alla JVM che esegue la compilazione. Lì i risultati vengono aggregati per renderlo simile a una singola JVM, esecuzione di test a thread singolo. Questo funziona anche per le build che definiscono i propri listener di test.

Per ottenere l'esecuzione parallela del test in Ant, è necessario un task Ant che supporti questa funzione (non è sicuro se ne esiste uno). Un'alternativa è di importare la tua build Ant in Gradle (ant.importBuild "build.xml") e aggiungere un'attività di prova sul lato Gradle.

+0

Hmmm, questa è un'idea interessante. Sono sorpreso che una cosa del genere non esista già in Ant, ad essere onesti. – dty

Problemi correlati