java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
Ale jeśli używasz JUnit 3.X zwróć uwagę, że nazwa klasy jest inna:
java -cp .:/usr/share/java/junit.jar junit.textui.TestRunner [test class name]
Może być konieczne dodanie większej liczby plików JAR lub katalogów z plikami klas do ścieżki klasy i oddzielenie ich średnikami (Windows) lub dwukropkami (UNIX / Linux). To zależy od twojego środowiska.
Edycja: dodałem bieżący katalog jako przykład. Zależy od środowiska i sposobu budowania aplikacji (może to być bin / lub build / a nawet my_application.jar itp.). Uwaga: Java 6+ obsługuje globusy w ścieżce klas, możesz:
Głosuj W przypadku JUnit 4.x jest to niewłaściwe. W instrukcjach podano „Nie można znaleźć klasy: [nazwa klasy testowej]” Nawet jeśli [nazwa klasy testowej] znajduje się w ścieżce klasy.
Philip Rego,
117
Maven way
Jeśli używasz Maven, możesz uruchomić następującą komendę, aby uruchomić wszystkie przypadki testowe:
mvn clean test
Lub możesz uruchomić określony test, jak poniżej
mvn clean test -Dtest=your.package.TestClassName
mvn clean test -Dtest=your.package.TestClassName#particularMethod
Jeśli chcesz zobaczyć ślad stosu (jeśli istnieje) w konsoli zamiast plików raportów w folderze docelowym \ surefire-raporty, ustaw właściwość użytkownika surefire.useFile na wartość false. Na przykład:
mvn clean test -Dtest=your.package.TestClassName -Dsurefire.useFile=false
Stopniowy sposób
Jeśli używasz opcji Gradle, możesz uruchomić następujące polecenie, aby uruchomić wszystkie przypadki testowe:
gradle test
Lub możesz uruchomić określony test, jak poniżej
gradle test --tests your.package.TestClassName
gradle test --tests your.package.TestClassName.particularMethod
Jeśli chcesz uzyskać więcej informacji, możesz rozważyć takie opcje, jak --stacktrace, --info lub --debug.
Na przykład, gdy uruchomisz Gradle z poziomem rejestrowania informacji - info, pokaże on wynik każdego testu podczas jego działania. Jeśli jest jakiś wyjątek, pokaże on ślad stosu, wskazując na czym polega problem.
gradle test --info
Jeśli chcesz zobaczyć ogólne wyniki testu, możesz na przykład otworzyć raport w przeglądarce (otwórz go za pomocą Google Chrome w Ubuntu):
google-chrome build/reports/tests/index.html
Sposób mrówki
Po skonfigurowaniu pliku kompilacji Anta build.xml możesz uruchomić przypadki testowe JUnit z wiersza poleceń, jak poniżej:
Podoba mi się, że ta odpowiedź zawiera przykłady wielu technologii, uwielbienie!
Josie Thompson
a co z testami Groovy przy użyciu ostatniego podejścia?
midori
1
Zasłużona złota odznaka;)
Eric Duminil
Dzięki za wersję dla gradle! Sława!
ady
52
Odpowiedź udzielona przez @lzap jest dobrym rozwiązaniem. Chciałbym jednak dodać, że należy dodać. do ścieżki klasy, aby bieżący katalog nie został pominięty, co spowoduje, że własne klasy zostaną pominięte. Zdarzyło mi się to na niektórych platformach. Zaktualizowana wersja JUnit 4.x będzie:
java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
Miał ten sam problem z JUnit 4.12. Wymyśliłem podobne rozwiązanie, ale nie zadziałało dla mnie, nie udało się załadować JUnitCore. Zasadniczo przerzuciłem się na JUnit 4.8.2, ponieważ nie wymaga on włączenia hamcrest-core.jar do ścieżki klasy.
Vladimir Nazarenko
Potwierdzono, że należy to zrobić za pomocą JUnit 4.12. +1.
rayryeng
To zadziałało dla mnie:java -cp .:/usr/share/java/junit4.jar org.junit.runner.JUnitCore [test class name]
Raffi Khatchadourian
11
W Windowsie jest
java -cp .;/path/junit.jar org.junit.runner.JUnitCore TestClass [nazwa klasy testowej bez rozszerzenia .class]
na przykład:
c:\>java -cp .;f:/libraries/junit-4.8.2 org.junit.runner.JUnitCore TestSample1 TestSample2 ...i tak dalej, jeśli ktoś ma więcej niż jedną klasę testową.
-cp oznacza ścieżkę klasy, a kropka (.) reprezentuje istniejącą ścieżkę klasy, natomiast średnik (;) dołącza dodatkowy podany jar do ścieżki klasy, jak w powyższym przykładzie junit-4.8.2 jest teraz dostępny w ścieżce klasy do wykonania klasy JUnitCore, która tutaj wykonywaliśmy nasze klasy testowe.
Powyższa instrukcja wiersza poleceń pomaga wykonywać testy junit (wersja 4+) z wiersza polecenia (np. MSDos).
Uwaga: JUnitCore to fasada do wykonywania testów junit, ta fasada jest zawarta w ponad 4 wersjach junit.
Nie prosiłem cię, byś zwięźle odpowiedział. Poprosiłem o dodanie jakiegoś wyjaśnienia (przynajmniej krótkiego wyjaśnienia). Dobrą praktyką jest wyjaśnienie, w jaki sposób działa twoja odpowiedź. Czytelnicy mogą to zrozumieć, polubić to.
Mohit Jain
więc jeśli miałbym dodatkowy słoik testowy ORAZ słoik waniliowy, musiałbym mieć oba w komendzie java -cp, aby cokolwiek faktycznie zadziałało? Czy jest jakiś sposób na umieszczenie tego wszystkiego w wierszu poleceń, aby nie musiałem pisać tyle rzeczy?
Ungeheuer,
5
W rzeczywistości możesz również sprawić, aby test Junita był uruchamialnym słoikiem i nazwać go jako java -jar
W Eclipse kliknij prawym przyciskiem myszy swój projekt JUnit -> kliknij Eksportuj -> Wybierz Java-> Runnable Jar File
Indraneel
4
Jeśli twój projekt jest oparty na Maven, możesz uruchomić wszystkie metody testowe z klasy testowej CustomTest, która należy do modułu „mój-moduł”, używając następnej komendy:
mvn clean test -pl :my-module -Dtest=CustomTest
Lub uruchom tylko 1 metodę testową myMethod z klasy testowej CustomTest, używając następnego polecenia:
mvn clean test -pl :my-module -Dtest=CustomTest#myMethod
Dlatego powiedziałem „jeśli twój projekt jest oparty na mrówkach”. Zauważ też, że OP może nie wiedzieć o mrówce.
cherouvim
Miałem ten dillema, pliki testów jednostkowych nie były w folderze oznaczonym jako źródło zaćmieniem. Ten projekt używa mrówki do budowania. To był właściwy sposób na uruchomienie testów JUnit.
javac -cp "junit-4.12.jar; hamcrest-core-1.3.jar;." Tests.java
pracował dla mnie. Uwaga końcowa kropka - to ważne!Odpowiedzi:
W przypadku JUnit 5.x jest to:
Znajdź krótkie streszczenie na https://stackoverflow.com/a/52373592/1431016, a pełne szczegóły na https://junit.org/junit5/docs/current/user-guide/#running-tests-console-launcher
W przypadku JUnit 4.X jest to naprawdę:
Ale jeśli używasz JUnit 3.X zwróć uwagę, że nazwa klasy jest inna:
Może być konieczne dodanie większej liczby plików JAR lub katalogów z plikami klas do ścieżki klasy i oddzielenie ich średnikami (Windows) lub dwukropkami (UNIX / Linux). To zależy od twojego środowiska.
Edycja: dodałem bieżący katalog jako przykład. Zależy od środowiska i sposobu budowania aplikacji (może to być bin / lub build / a nawet my_application.jar itp.). Uwaga: Java 6+ obsługuje globusy w ścieżce klas, możesz:
Mam nadzieję, że to pomoże. Napisz testy! :-)
źródło
Maven way
Jeśli używasz Maven, możesz uruchomić następującą komendę, aby uruchomić wszystkie przypadki testowe:
Lub możesz uruchomić określony test, jak poniżej
Jeśli chcesz zobaczyć ślad stosu (jeśli istnieje) w konsoli zamiast plików raportów w folderze docelowym \ surefire-raporty, ustaw właściwość użytkownika surefire.useFile na wartość false. Na przykład:
Stopniowy sposób
Jeśli używasz opcji Gradle, możesz uruchomić następujące polecenie, aby uruchomić wszystkie przypadki testowe:
Lub możesz uruchomić określony test, jak poniżej
Jeśli chcesz uzyskać więcej informacji, możesz rozważyć takie opcje, jak --stacktrace, --info lub --debug.
Na przykład, gdy uruchomisz Gradle z poziomem rejestrowania informacji - info, pokaże on wynik każdego testu podczas jego działania. Jeśli jest jakiś wyjątek, pokaże on ślad stosu, wskazując na czym polega problem.
Jeśli chcesz zobaczyć ogólne wyniki testu, możesz na przykład otworzyć raport w przeglądarce (otwórz go za pomocą Google Chrome w Ubuntu):
Sposób mrówki
Po skonfigurowaniu pliku kompilacji Anta build.xml możesz uruchomić przypadki testowe JUnit z wiersza poleceń, jak poniżej:
Możesz kliknąć poniższy link, aby dowiedzieć się więcej na temat konfigurowania testów JUnit w pliku kompilacji Ant: https://ant.apache.org/manual/Tasks/junit.html
Normalny sposób
Jeśli nie korzystasz z Maven, Gradle lub Ant, możesz postępować w następujący sposób:
Przede wszystkim musisz skompilować swoje przypadki testowe. Na przykład (w systemie Linux):
Następnie uruchom swoje przypadki testowe. Na przykład:
źródło
Odpowiedź udzielona przez @lzap jest dobrym rozwiązaniem. Chciałbym jednak dodać, że należy dodać. do ścieżki klasy, aby bieżący katalog nie został pominięty, co spowoduje, że własne klasy zostaną pominięte. Zdarzyło mi się to na niektórych platformach. Zaktualizowana wersja JUnit 4.x będzie:
źródło
Upewnij się, że JUnit.jar znajduje się w ścieżce klasy, a następnie uruchom konsolę z linii poleceń
Odniesienie: FAQ FAQ
źródło
W JUnit 4.12 nie działało dla mnie:
Najwyraźniej od JUnit 4.11 należy również dołączyć
hamcrest-core.jar
do ścieżki klasy:źródło
java -cp .:/usr/share/java/junit4.jar org.junit.runner.JUnitCore [test class name]
W Windowsie jest
java -cp .;/path/junit.jar org.junit.runner.JUnitCore TestClass
[nazwa klasy testowej bez rozszerzenia .class]na przykład:
c:\>java -cp .;f:/libraries/junit-4.8.2 org.junit.runner.JUnitCore TestSample1 TestSample2 ...
i tak dalej, jeśli ktoś ma więcej niż jedną klasę testową.-cp oznacza ścieżkę klasy, a kropka (.) reprezentuje istniejącą ścieżkę klasy, natomiast średnik (;) dołącza dodatkowy podany jar do ścieżki klasy, jak w powyższym przykładzie junit-4.8.2 jest teraz dostępny w ścieżce klasy do wykonania klasy JUnitCore, która tutaj wykonywaliśmy nasze klasy testowe.
Powyższa instrukcja wiersza poleceń pomaga wykonywać testy junit (wersja 4+) z wiersza polecenia (np. MSDos).
Uwaga: JUnitCore to fasada do wykonywania testów junit, ta fasada jest zawarta w ponad 4 wersjach junit.
źródło
W rzeczywistości możesz również sprawić, aby test Junita był uruchamialnym słoikiem i nazwać go jako java -jar
źródło
Jeśli twój projekt jest oparty na Maven, możesz uruchomić wszystkie metody testowe z klasy testowej CustomTest, która należy do modułu „mój-moduł”, używając następnej komendy:
Lub uruchom tylko 1 metodę testową myMethod z klasy testowej CustomTest, używając następnego polecenia:
Do tej umiejętności potrzebujesz Maven Surefire Plugin v.2.7.3 + i Junit 4. Więcej szczegółów tutaj: http://maven.apache.org/surefire/maven-surefire-plugin/examples/single-test.html
źródło
Osobiście użyłbym do tego biegacza Maven surefire JUnit.
źródło
Alternatywnie możesz użyć następujących metod w klasie JunitCore http://junit.sourceforge.net/javadoc/org/junit/runner/JUnitCore.html
uruchom (z żądaniem, klasami klas i biegaczem) lub runClasses z pliku Java.
źródło
Jeśli projekt jest oparty na mrówkach, powinieneś być w stanie zrobić coś takiego z konsoli:
Jeśli to nie zadziała, ale nadal Twój projekt jest oparty na mrówkach, możesz uruchomić,
ant -p
aby wyświetlić listę głównych celów projektu.źródło