2012-12-26 10 views
5

Mam jedną klasę JUnit i ta klasa zawiera kilka metod testowania. Próbuję uruchomić tę klasę testu poprzez Eclipse IDE menu Uruchom jako -> Junit Test.JUnit: Uruchom za pomocą testu Eclipse i Maven. Duża różnica w prędkości, dlaczego?

Prędkość wykonania:

1 raz. 30 sek.

2 raz: 29 sek.

3 czas: 23 sek.

Po tym, próbuję wykonać test klasy przez maven run w terminalu. W tym przypadku szybkość wykonania:

1 raz: 1 min. 10 sekund.

2 raz: 59 sek.

3 razem: 56 sek.

Tak więc, jak widać, mamy naprawdę dużą różnicę między tymi dwoma przypadkami. Ale jak możemy wyjaśnić tę wielką różnicę?

P.S. Używam najnowszej wersji Eclipse IDE i maven.

+0

Ponownie uruchom maven i daj nam znać wyjście. Być może był to pierwszy raz, gdy jakiś słoik został pobrany, i ten czas jest brany pod uwagę. – mtk

+0

@mtk, eksperymentuję z tym przez cały dzień, myślę, że cały słoik został pobrany. – user471011

+0

jak się masz pewność, że argumenty są takie same? czy może biegacz testu zaćmienia skonfigurowany z większą ilością pamięci? – radai

Odpowiedz

0

Maven ma cykl budowy, który obejmuje następujące etapy:

  1. validate
  2. kompilacji
  3. Test
  4. pakiet
  5. integracja test
  6. zweryfikować
  7. zainstalować
  8. wdrożyć

Eclipse po prostu kompiluje i uruchamia test.
Myślę, że to może być powód.

+0

Próbowałem również uruchomić testy za pomocą polecenia "mvn surefire: test". Wynik jest taki sam. – user471011

+0

Uruchamianie mvn murowany: Test wykonuje się następujące etapy: - proces -źródła - kompilację \t - proces prób środki - test kompilacji - test; Jest to powód, dla którego jest wolniejszy niż uruchamianie w czasie zaćmienia. Powinieneś sprawdzić ten adres URL, aby uzyskać więcej informacji: [Cykl życia Maven build] (http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html) – Andrew

+0

i nie ma sposobu, aby pominąć wszystkie poprzednie fazy i po prostu wykonać jedną fazę? – user471011