2011-09-07 29 views
5

Podczas wykonywania testów jednostkowych, Gradle może wykonywać wiele testów równolegle bez żadnych zmian samych testów (tj. Specjalne adnotacje, biegacze testowe itp.). Chciałbym osiągnąć to samo z mrówką, ale nie jestem pewien jak.Uruchamiaj testy JUnit równolegle

Widziałem this question, ale żadna z odpowiedzi naprawdę nie przemawiała do mnie. Oba dotyczą hacków z ant-contrib, specjalnych biegaczy utworzonych za pomocą adnotacji @RunWith, innych specjalnych adnotacji itp. Jestem również świadomy TestNG, ale nie mogę zmusić wtyczki Eclipse do migracji naszych testów - i mamy ich około 10 000, więc nie robię tego ręcznie!

Gradle nie potrzebuje żadnej z tych rzeczy, więc jak mam to zrobić w mrówce? Domyślam się, że Gradle używa specjalnego biegacza, ale jeśli tak, to jest skonfigurowany jako część konfiguracji JUnit i nie jest wspomniany w każdym pojedynczym teście. Jeśli tak, to w porządku. Po prostu nie chcę iść i modyfikować c. 10 000 testów jednostkowych!

Odpowiedz

6

Gradle nie używa specjalnego biegacza JUnit w ścisłym znaczeniu tego słowa. "Po prostu" ma wyrafinowane zadanie testowe, które wie, jak uruchomić wiele JVM, uruchomić podzbiór klas testowych w każdym z nich (poprzez wywołanie JUnit) i złożyć wyniki z powrotem do JVM, która wykonuje kompilację. Tam wyniki są agregowane, aby wyglądały jak jedno-gwintowe wykonanie testowe JVM. Działa to nawet w kompilacjach, które definiują własne testy słuchaczy.

Aby uzyskać równoległe wykonanie testu w Ant, potrzebne jest zadanie Ant, które obsługuje tę funkcję (nie ma pewności, czy istnieje). Alternatywą jest zaimportowanie kompilacji Anta do Gradle (ant.importBuild "build.xml") i dodanie zadania testowego po stronie Gradle.

+0

Hmmm, to ciekawy pomysł. Jestem zaskoczony, że coś takiego nie istnieje już w Antzie, szczerze mówiąc. – dty

Powiązane problemy