java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
Wenn Sie jedoch JUnit 3.X verwenden, beachten Sie, dass der Klassenname anders ist:
java -cp .:/usr/share/java/junit.jar junit.textui.TestRunner [test class name]
Möglicherweise müssen Sie dem Klassenpfad weitere JARs oder Verzeichnisse mit Ihren Klassendateien hinzufügen und diese durch Semikolons (Windows) oder Doppelpunkte (UNIX / Linux) trennen. Das hängt von Ihrer Umgebung ab.
Bearbeiten: Ich habe als Beispiel das aktuelle Verzeichnis hinzugefügt. Hängt von Ihrer Umgebung ab und davon, wie Sie Ihre Anwendung erstellen (kann bin / oder build / oder sogar my_application.jar usw. sein). Hinweis Java 6+ unterstützt Globs im Klassenpfad. Sie können Folgendes tun:
Downvote. Für JUnit 4.x ist es nicht richtig. Ihre Anweisungen lauten "Klasse konnte nicht gefunden werden: [Name der Testklasse]", auch wenn sich [Name der Testklasse] im Klassenpfad befindet.
Philip Rego
117
Maven Weg
Wenn Sie Maven verwenden, können Sie den folgenden Befehl ausführen, um alle Ihre Testfälle auszuführen:
mvn clean test
Oder Sie können einen bestimmten Test wie unten ausführen
mvn clean test -Dtest=your.package.TestClassName
mvn clean test -Dtest=your.package.TestClassName#particularMethod
Wenn Sie den Stack-Trace (falls vorhanden) in der Konsole anstelle von Berichtsdateien im Ordner target \ surefire-reports anzeigen möchten, setzen Sie die Benutzereigenschaft surefire.useFile auf false. Zum Beispiel:
mvn clean test -Dtest=your.package.TestClassName -Dsurefire.useFile=false
Gradle Weg
Wenn Sie Gradle verwenden, können Sie den folgenden Befehl ausführen, um alle Ihre Testfälle auszuführen:
gradle test
Oder Sie können einen bestimmten Test wie unten ausführen
gradle test --tests your.package.TestClassName
gradle test --tests your.package.TestClassName.particularMethod
Wenn Sie weitere Informationen wünschen, können Sie Optionen wie --stacktrace, --info oder --debug in Betracht ziehen.
Wenn Sie beispielsweise Gradle mit der Info-Protokollierungsstufe --info ausführen, wird das Ergebnis jedes Tests angezeigt, während dieser ausgeführt wird. Wenn es eine Ausnahme gibt, wird Ihnen die Stapelverfolgung angezeigt, die auf das Problem hinweist.
gradle test --info
Wenn Sie die allgemeinen Testergebnisse anzeigen möchten, können Sie den Bericht beispielsweise im Browser öffnen (Öffnen Sie ihn mit Google Chrome in Ubuntu):
google-chrome build/reports/tests/index.html
Ameisenweg
Sobald Sie Ihre Ant-Build-Datei build.xml eingerichtet haben, können Sie Ihre JUnit-Testfälle über die folgende Befehlszeile ausführen:
Ich mag, dass diese Antwort Beispiele für mehrere Technologien enthält, ein dickes Lob!
Josie Thompson
Was ist mit groovigen Tests mit dem letzten Ansatz?
Midori
1
Gut verdientes goldenes Abzeichen;)
Eric Duminil
Danke für die Version für gradle! Ein großes Lob!
Ady
52
Die Antwort, die @lzap gab, ist eine gute Lösung. Ich möchte jedoch hinzufügen, dass Sie hinzufügen sollten. zum Klassenpfad, damit Ihr aktuelles Verzeichnis nicht ausgelassen wird, was dazu führt, dass Ihre eigenen Klassen weggelassen werden. Das ist mir auf einigen Plattformen passiert. Eine aktualisierte Version für JUnit 4.x wäre also:
java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
@panny es ist ein Semikolon unter Windows. In einer n * nix-Umgebung (mindestens OSX und alle von mir verwendeten Linux-Distributionen) verwenden Sie einen Doppelpunkt.
Rand_acs
1
@rand_acs Muss der Name der Testklasse der vollständig klassifizierte Klassenname sein?
Goaler444
1
@ Goaler444 Ja, ich verwende immer den vollständigen Namen mit allen angegebenen Namespaces.
Rand_acs
22
Stellen Sie sicher, dass sich JUnit.jar in Ihrem Klassenpfad befindet, und rufen Sie dann den Befehlszeilenläufer über die Konsole auf
java org.junit.runner.JUnitCore [Name der Testklasse]
Hatte das gleiche Problem mit JUnit 4.12. Ich habe eine ähnliche Lösung gefunden, aber sie hat bei mir nicht funktioniert und JUnitCore konnte nicht geladen werden. Ich habe grundsätzlich zu JUnit 4.8.2 gewechselt, da hamcrest-core.jar nicht in den Klassenpfad aufgenommen werden muss.
Vladimir Nazarenko
Bestätigt, dass dies mit JUnit 4.12 erfolgen muss. +1.
Rayryeng
Dies funktionierte für mich:java -cp .:/usr/share/java/junit4.jar org.junit.runner.JUnitCore [test class name]
Raffi Khatchadourian
11
In Windows ist es
java -cp .;/path/junit.jar org.junit.runner.JUnitCore TestClass [Name der Testklasse ohne Erweiterung .class]
Zum Beispiel:
c:\>java -cp .;f:/libraries/junit-4.8.2 org.junit.runner.JUnitCore TestSample1 TestSample2 ...und so weiter, wenn man mehr als eine Testklasse hat.
-cp steht für Klassenpfad und der Punkt (.) stellt den vorhandenen Klassenpfad dar, während Semikolon (;) das zusätzlich angegebene JAR an den Klassenpfad anfügt, wie im obigen Beispiel junit-4.8.2 jetzt im Klassenpfad verfügbar ist, um die JUnitCore-Klasse auszuführen, die Hier haben wir unsere Testklassen ausgeführt.
Die obige Befehlszeilenanweisung hilft Ihnen beim Ausführen von Junit-Tests (Version 4+) an der Eingabeaufforderung (z. B. MSDos).
Hinweis: JUnitCore ist eine Fassade zum Ausführen von Junit-Tests. Diese Fassade ist in mehr als 4 Junit-Versionen enthalten.
Ich habe Sie nicht gebeten, Ihre Antwort kurz zu halten. Ich bat um eine Erklärung (zumindest eine kurze Erklärung). Es ist eine gute Praxis, zu erklären, wie Ihre Antwort funktioniert. Die Leser mögen es verstehen, mögen es, stimmen es ab.
Mohit Jain
Wenn ich also ein zusätzliches Testglas UND das Vanille-Junit-Glas hätte, müsste ich beide im Java-Befehl cc haben, damit irgendetwas tatsächlich funktioniert? Gibt es eine Möglichkeit, all dies in eine Befehlszeile zu schreiben, damit ich nicht so viel eingeben muss?
Ungeheuer
5
Tatsächlich können Sie den Junit-Test auch zu einem ausführbaren Glas machen und das ausführbare Glas als Java-Jar bezeichnen
Klicken Sie in Eclipse mit der rechten Maustaste auf Ihr JUnit-Projekt -> Klicken Sie auf Exportieren -> Wählen Sie Java-> Runnable Jar File
Indraneel
4
Wenn Ihr Projekt auf Maven basiert, können Sie alle Testmethoden aus der Testklasse CustomTest, die zum Modul 'my-module' gehört, mit dem nächsten Befehl ausführen:
mvn clean test -pl :my-module -Dtest=CustomTest
Oder führen Sie nur 1 Testmethode myMethod aus der Testklasse CustomTest mit dem nächsten Befehl aus:
mvn clean test -pl :my-module -Dtest=CustomTest#myMethod
Deshalb habe ich gesagt, "wenn Ihr Projekt auf Ameisen basiert". Beachten Sie auch, dass das OP möglicherweise nichts über Ameisen weiß.
Cherouvim
Ich hatte dieses Dillema, Unit-Test-Dateien befanden sich nicht in einem Ordner, der von Eclipse als Quelle markiert wurde. Dieses Projekt verwendet ant zum Erstellen. Dies war der richtige Weg, um diese JUnit-Tests auszuführen.
javac -cp "junit-4.12.jar; hamcrest-core-1.3.jar;." Tests.java
arbeitete für mich. Beachten Sie den Endpunkt - es ist wichtig!Antworten:
Für JUnit 5.x ist es:
Eine kurze Zusammenfassung finden Sie unter https://stackoverflow.com/a/52373592/1431016 und ausführliche Informationen unter https://junit.org/junit5/docs/current/user-guide/#running-tests-console-launcher
Für JUnit 4.X ist es wirklich:
Wenn Sie jedoch JUnit 3.X verwenden, beachten Sie, dass der Klassenname anders ist:
Möglicherweise müssen Sie dem Klassenpfad weitere JARs oder Verzeichnisse mit Ihren Klassendateien hinzufügen und diese durch Semikolons (Windows) oder Doppelpunkte (UNIX / Linux) trennen. Das hängt von Ihrer Umgebung ab.
Bearbeiten: Ich habe als Beispiel das aktuelle Verzeichnis hinzugefügt. Hängt von Ihrer Umgebung ab und davon, wie Sie Ihre Anwendung erstellen (kann bin / oder build / oder sogar my_application.jar usw. sein). Hinweis Java 6+ unterstützt Globs im Klassenpfad. Sie können Folgendes tun:
Ich hoffe es hilft. Schreibe Tests! :-)
quelle
Maven Weg
Wenn Sie Maven verwenden, können Sie den folgenden Befehl ausführen, um alle Ihre Testfälle auszuführen:
Oder Sie können einen bestimmten Test wie unten ausführen
Wenn Sie den Stack-Trace (falls vorhanden) in der Konsole anstelle von Berichtsdateien im Ordner target \ surefire-reports anzeigen möchten, setzen Sie die Benutzereigenschaft surefire.useFile auf false. Zum Beispiel:
Gradle Weg
Wenn Sie Gradle verwenden, können Sie den folgenden Befehl ausführen, um alle Ihre Testfälle auszuführen:
Oder Sie können einen bestimmten Test wie unten ausführen
Wenn Sie weitere Informationen wünschen, können Sie Optionen wie --stacktrace, --info oder --debug in Betracht ziehen.
Wenn Sie beispielsweise Gradle mit der Info-Protokollierungsstufe --info ausführen, wird das Ergebnis jedes Tests angezeigt, während dieser ausgeführt wird. Wenn es eine Ausnahme gibt, wird Ihnen die Stapelverfolgung angezeigt, die auf das Problem hinweist.
Wenn Sie die allgemeinen Testergebnisse anzeigen möchten, können Sie den Bericht beispielsweise im Browser öffnen (Öffnen Sie ihn mit Google Chrome in Ubuntu):
Ameisenweg
Sobald Sie Ihre Ant-Build-Datei build.xml eingerichtet haben, können Sie Ihre JUnit-Testfälle über die folgende Befehlszeile ausführen:
Sie können dem folgenden Link folgen, um weitere Informationen zum Konfigurieren von JUnit-Tests in der Ant-Build-Datei zu erhalten: https://ant.apache.org/manual/Tasks/junit.html
Normaler Weg
Wenn Sie Maven, Gradle oder Ant nicht verwenden, können Sie folgendermaßen vorgehen:
Zunächst müssen Sie Ihre Testfälle kompilieren. Zum Beispiel (unter Linux):
Führen Sie dann Ihre Testfälle aus. Zum Beispiel:
quelle
Die Antwort, die @lzap gab, ist eine gute Lösung. Ich möchte jedoch hinzufügen, dass Sie hinzufügen sollten. zum Klassenpfad, damit Ihr aktuelles Verzeichnis nicht ausgelassen wird, was dazu führt, dass Ihre eigenen Klassen weggelassen werden. Das ist mir auf einigen Plattformen passiert. Eine aktualisierte Version für JUnit 4.x wäre also:
quelle
Stellen Sie sicher, dass sich JUnit.jar in Ihrem Klassenpfad befindet, und rufen Sie dann den Befehlszeilenläufer über die Konsole auf
Referenz: junit FAQ
quelle
Mit JUnit 4.12 hat Folgendes bei mir nicht funktioniert:
Anscheinend sollten Sie ab JUnit 4.11 auch Folgendes
hamcrest-core.jar
in Ihren Klassenpfad aufnehmen:quelle
java -cp .:/usr/share/java/junit4.jar org.junit.runner.JUnitCore [test class name]
In Windows ist es
java -cp .;/path/junit.jar org.junit.runner.JUnitCore TestClass
[Name der Testklasse ohne Erweiterung .class]Zum Beispiel:
c:\>java -cp .;f:/libraries/junit-4.8.2 org.junit.runner.JUnitCore TestSample1 TestSample2 ...
und so weiter, wenn man mehr als eine Testklasse hat.-cp steht für Klassenpfad und der Punkt (.) stellt den vorhandenen Klassenpfad dar, während Semikolon (;) das zusätzlich angegebene JAR an den Klassenpfad anfügt, wie im obigen Beispiel junit-4.8.2 jetzt im Klassenpfad verfügbar ist, um die JUnitCore-Klasse auszuführen, die Hier haben wir unsere Testklassen ausgeführt.
Die obige Befehlszeilenanweisung hilft Ihnen beim Ausführen von Junit-Tests (Version 4+) an der Eingabeaufforderung (z. B. MSDos).
Hinweis: JUnitCore ist eine Fassade zum Ausführen von Junit-Tests. Diese Fassade ist in mehr als 4 Junit-Versionen enthalten.
quelle
Tatsächlich können Sie den Junit-Test auch zu einem ausführbaren Glas machen und das ausführbare Glas als Java-Jar bezeichnen
quelle
Wenn Ihr Projekt auf Maven basiert, können Sie alle Testmethoden aus der Testklasse CustomTest, die zum Modul 'my-module' gehört, mit dem nächsten Befehl ausführen:
Oder führen Sie nur 1 Testmethode myMethod aus der Testklasse CustomTest mit dem nächsten Befehl aus:
Für diese Fähigkeit benötigen Sie das Maven Surefire Plugin v.2.7.3 + und Junit 4. Weitere Details finden Sie hier: http://maven.apache.org/surefire/maven-surefire-plugin/examples/single-test.html
quelle
Persönlich würde ich den Maven todsicheren JUnit-Läufer verwenden, um das zu tun.
quelle
Alternativ können Sie die folgenden Methoden in der JunitCore-Klasse http://junit.sourceforge.net/javadoc/org/junit/runner/JUnitCore.html verwenden
Führen Sie (mit Request, Class Classes und Runner) oder runClasses aus Ihrer Java-Datei aus.
quelle
Wenn Ihr Projekt auf Ameisen basiert, sollten Sie in der Lage sein, Folgendes über die Konsole zu tun:
Wenn dies nicht funktioniert, Ihr Projekt jedoch auf Ameisen basiert, können Sie
ant -p
die Hauptziele des Projekts auflisten.quelle