Wiem, że możesz uruchomić wszystkie testy w określonej klasie, używając:
mvn test -Dtest=classname
Ale chcę uruchomić indywidualną metodę i -Dtest = nazwa_klasy. Nazwa_metody wydaje się nie działać.
java
unit-testing
maven-2
BillMan
źródło
źródło
mvn test -Dtest=classname
składni.Odpowiedzi:
Aby uruchomić pojedynczą metodę testową w Maven, musisz podać komendę jako:
gdzie
TestCircle
jest nazwą klasy testowej ixyz
jest metodą testową.Dzikie znaki również działają; zarówno w nazwie metody, jak i nazwie klasy.
Jeśli testujesz w projekcie wielomodułowym, określ moduł, w którym test się znajduje
-pl <module-name>
.Do testów integracyjnych użyj
it.test=...
opcji zamiasttest=...
:źródło
-pl <module-name>
.-DfailIfNoTests=false
do pomijania projektów bez testu.No Tests Were Executed
zdarza się, gdy próbujesz uruchomić test z projektu root i są moduły bez testów w ogóle.mvn "-DTest=JoinTeamTestCases#validateJoinTeam" test
Zauważ, że „-DTest” zaczyna się od GÓRNEJ OBUDOWY „T”.Wystąpił problem z surefire 2.12. Oto co się ze mną zmieniło, zmieniając wtyczkę maven-surefire z 2.12 na 2.11:
mvn test -Dtest=DesignRulesTest
mvn test -Dtest=DesignRulesTest
źródło
@Category(IntegrationTest.class)
, używaj-Dit.test=ClassName
, w przeciwnym razie otrzymaszNo tests were executed!
nawet najnowsze wersje wtyczek.To, co robię z moim TestNG (przepraszam, JUnit nie obsługuje tego), to przypadki, w których mogę przypisać grupę do testu, który chcę uruchomić
A następnie po prostu uruchom „mvn -Dgroups = broken”.
źródło
Uruchamianie zestawu metod w jednej klasie testowej W wersji 2.7.3 można uruchomić tylko n testów w jednej klasie testowej.
UWAGA: jest obsługiwany przez junit 4.xi TestNG.
Musisz użyć następującej składni
Możesz także użyć wzorów
Od surefire 2.12.1 możesz wybrać wiele metod (obecnie JUnit4X, łatki mile widziane)
Sprawdź ten link na temat pojedynczych testów
źródło
Możesz uruchomić określone klasy testowe i metody, stosując następującą składnię:
źródło
To polecenie działa !!
mvn "-DTest=JoinTeamTestCases#validateJoinTeam" test
Zauważ, że „-DTest” zaczyna się od GÓRNEJ OBUDOWY „T”.źródło
Badanie parametrów wymienionych przez tobrien pozwala określić metodę używając # przed nazwą metody. To powinno działać dla JUnit i TestNG. Nigdy tego nie próbowałem, po prostu przeczytaj to na stronie wtyczki Surefire :
źródło
Nowe wersje JUnit zawiera moduł uruchamiający kategorie: http://kentbeck.github.com/junit/doc/ReleaseNotes4.8.html
Ale procedura wydania JUnit nie jest oparta na maven, więc użytkownicy maven muszą ręcznie umieścić go w swoich repozytoriach.
źródło
Począwszy od wtyczki surefire w wersji 2.22.1 (być może wcześniejszej), można uruchomić pojedynczy test, używając właściwości testnames, używając testng.xml
Biorąc pod uwagę następujący testng.xml
z pom.xml
Z linii poleceń
Dalsza lektura - wtyczka Maven surefire za pomocą testng
źródło
Możesz uruchomić jedną klasę testową, ale nie jedną metodę w klasie testowej. Używasz prostej nazwy klasy, a nie pełnej nazwy klasy. Więc jeśli masz test w „org.sonatype.test.MyTest” i jest to jedyny test, który chcesz uruchomić, linia poleceń wyglądałaby następująco:
źródło
Według mojej wiedzy wtyczka surefire nie zapewnia żadnego sposobu, aby to zrobić. Ale możesz otworzyć problem :)
źródło