2013-04-16 18 views
13

Czy można równolegle uruchamiać testy junit w intelliJ? Jeśli tak, jak to zrobić?Uruchamianie testów junitowych w intelliJ równolegle

Ustawiłem parametr "widelec" na poziom klasy, a to nic nie dało - w rzeczywistości wszystko było wolniejsze, więc nie jestem pewien, co robi "widelec", co jest korzystne?

Czy można to zrobić za pomocą intelliJ tylko, czy potrzebuję jakiegoś fantazyjnego szkieletu testowego i wszystkich hoo-hah, które to wymagałoby?

Wreszcie, zakładając, że jest to w ogóle możliwe, czy można kontrolować liczbę widełek lub nici lub jakkolwiek by to nazwać?

AKTUALIZACJA: ktoś ma link do pytania, które może odpowiedzieć na to pytanie. Spojrzałem na to pytanie przed publikacją - nie jestem pewien, co to pytanie naprawdę "odpowiada". Mówi po prostu, że istnieje narzędzie do śledzenia problemów i że problem ten został zaimplementowany w systemie intelliJ. Nie widzę , jak zaimplementować go w dowolnym miejscu.

AKTUALIZACJA: Co oznacza "nic nie zrobiono" oznacza: po prostu spowalnia działanie, co nie jest użyteczne. Mam na myśli, może twoje testy działają błyskawicznie i chcesz je spowolnić, aby docenić trochę Bacha? To jest fajne. Chcę tylko, żeby mój biegał szybciej, mam dość Bacha.

+1

Zdefiniuj "nic nie zrobił", to * robi * coś, uruchamia testy w nowej maszynie JVM. To ma * zero * do czynienia z "uruchomieniem testów równolegle". –

+0

Może za pomocą jakiegoś wsparcia dla maven, jak na http://stackoverflow.com/questions/423627/running-junit-tests-in-parallel. Rozumiem, że potrzebuje trochę hoo-hah, więc nie uważam tego za odpowiedź. –

+0

@DaveNewton Przypuszczam, że miałem na myśli "nie zrobił nic, aby złagodzić problem pod ręką". – bharal

Odpowiedz

4

Możesz skorzystać z junit-toolbox. Jest to biblioteka rozszerzeń jUnit, która jest wymieniona na samej stronie jUnit.

To rozszerzenie oferuje the ParallelSuite. Dzięki temu możesz prawie bez wysiłku stworzyć klasę AllTest, która wykonuje testy równolegle. Minimalny test AllTest może wyglądać jak poniższy kod, wykorzystując funkcję wzorca wprowadzoną przy pomocy junit-toolbox.

@RunWith(ParallelSuite.class) 
@SuiteClasses("**/*Test.class") 
public class AllTests {} 

Spowoduje to utworzenie jak wiele wątków do wykonania równoległego jako raportach JVM poprzez availableProcessors. Aby to zmienić, możesz ustawić właściwość systemową maxParallelTestThreads.

Powiązane problemy