コマンドラインからJUnitテストケースを実行したいと思います。これどうやってするの?
javac -cp "junit-4.12.jar; hamcrest-core-1.3.jar;." Tests.java
私のために働いた。最後のドットに注意してください-それは重要です!
コマンドラインからJUnitテストケースを実行したいと思います。これどうやってするの?
javac -cp "junit-4.12.jar; hamcrest-core-1.3.jar;." Tests.java
私のために働いた。最後のドットに注意してください-それは重要です!
回答:
以下のためのJUnit 5.Xそれはです:
java -jar junit-platform-console-standalone-<version>.jar <Options>
https://stackoverflow.com/a/52373592/1431016で簡単な概要を、https://junit.org/junit5/docs/current/user-guide/#running-tests-console-launcherで詳細をご覧ください
以下のためのJUnit 4.Xそれは本当にです:
java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
ただし、JUnit 3.Xを使用している場合は、クラス名が異なることに注意してください。
java -cp .:/usr/share/java/junit.jar junit.textui.TestRunner [test class name]
クラスファイルを含むJARまたはディレクトリをクラスパスに追加し、セミコロン(Windows)またはコロン(UNIX / Linux)で区切る必要がある場合があります。環境によって異なります。
編集:例として現在のディレクトリを追加しました。環境とアプリケーションのビルド方法によって異なります(bin /、build /、またはmy_application.jarなどの場合もあります)。Java 6+はクラスパスでグロブをサポートしていることに注意してください。
java -cp lib/*.jar:/usr/share/java/junit.jar ...
それが役に立てば幸い。テストを書いてください!:-)
メイヴェンウェイ
Mavenを使用している場合は、次のコマンドを実行してすべてのテストケースを実行できます。
mvn clean test
または、以下のように特定のテストを実行できます
mvn clean test -Dtest=your.package.TestClassName
mvn clean test -Dtest=your.package.TestClassName#particularMethod
target \ surefire-reportsフォルダー内のレポートファイルの代わりに、コンソールにスタックトレース(存在する場合)を表示する場合は、ユーザープロパティsurefire.useFileをfalseに設定します。例えば:
mvn clean test -Dtest=your.package.TestClassName -Dsurefire.useFile=false
グラドルウェイ
Gradleを使用する場合は、次のコマンドを実行してすべてのテストケースを実行できます。
gradle test
または、以下のように特定のテストを実行できます
gradle test --tests your.package.TestClassName
gradle test --tests your.package.TestClassName.particularMethod
さらに情報が必要な場合は、-stacktrace、-info、-debugなどのオプションを検討できます。
たとえば、infoロギングレベル--infoでGradleを実行すると、実行中の各テストの結果が表示されます。例外がある場合は、スタックトレースが表示され、問題が何であるかが示されます。
gradle test --info
全体的なテスト結果を確認したい場合は、たとえばブラウザでレポートを開くことができます(UbuntuでGoogle Chromeを使用して開きます)。
google-chrome build/reports/tests/index.html
蟻道
Antビルドファイルbuild.xmlを設定したら、次のようにコマンドラインからJUnitテストケースを実行できます。
ant -f build.xml <Your JUnit test target name>
以下のリンクをたどると、AntビルドファイルでJUnitテストを構成する方法の詳細を読むことができます:https : //ant.apache.org/manual/Tasks/junit.html
通常の方法
Maven、Gradle、Antを使用しない場合は、次の方法を使用できます。
まず、テストケースをコンパイルする必要があります。例(Linuxの場合):
javac -d /absolute/path/for/compiled/classes -cp /absolute/path/to/junit-4.12.jar /absolute/path/to/TestClassName.java
次に、テストケースを実行します。例えば:
java -cp /absolute/path/for/compiled/classes:/absolute/path/to/junit-4.12.jar:/absolute/path/to/hamcrest-core-1.3.jar org.junit.runner.JUnitCore your.package.TestClassName
@lzapが与えた答えは良い解決策です。ただし、追加する必要があることを追加したいと思います。現在のディレクトリが除外されないように、クラスパスに追加します。その結果、独自のクラスが除外されます。これは、一部のプラットフォームで発生しました。したがって、JUnit 4.xの更新バージョンは次のようになります。
java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
JUnit.jarがクラスパスにあることを確認してから、コンソールからコマンドラインランナーを呼び出します
java org.junit.runner.JUnitCore [テストクラス名]
リファレンス:junit FAQ
JUnit 4.12では、以下は機能しませんでした。
java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
どうやら、JUnit 4.11以降hamcrest-core.jar
では、クラスパスにも含める必要があります。
java -cp .:/usr/share/java/junit.jar:/usr/share/java/hamcrest-core.jar org.junit.runner.JUnitCore [test class name]
java -cp .:/usr/share/java/junit4.jar org.junit.runner.JUnitCore [test class name]
Windowsでは
java -cp .;/path/junit.jar org.junit.runner.JUnitCore TestClass
[.class拡張子なしのテストクラス名]
たとえば
c:\>java -cp .;f:/libraries/junit-4.8.2 org.junit.runner.JUnitCore TestSample1 TestSample2 ...
、テストクラスが複数ある場合などです。
-cpはクラスパスを表し、ドット(。)は既存のクラスパスを表しますが、セミコロン(;)は指定された追加のjarをclasspathに追加します。上記の例のように、junit-4.8.2がクラスパスで使用可能になり、JUnitCoreクラスを実行できます。ここでは、テストクラスを実行するために使用しました。
上記のコマンドラインステートメントは、コマンドプロンプト(つまりMSDos)からjunit(バージョン4+)テストを実行するのに役立ちます。
注:JUnitCoreはjunitテストを実行するためのファサードです。このファサードは4以上のバージョンのjunitに含まれています。
プロジェクトがMavenベースの場合、次のコマンドを使用して、モジュール「my-module」に属するテストクラスCustomTestからすべてのテストメソッドを実行できます。
mvn clean test -pl :my-module -Dtest=CustomTest
または、次のコマンドを使用して、テストクラスCustomTestから1つのテストメソッドmyMethodのみを実行します。
mvn clean test -pl :my-module -Dtest=CustomTest#myMethod
この機能を使用するには、Maven Surefireプラグインv.2.7.3以降とJunit 4が必要です。詳細はこちら:http ://maven.apache.org/surefire/maven-surefire-plugin/examples/single-test.html
または、JunitCoreクラスhttp://junit.sourceforge.net/javadoc/org/junit/runner/JUnitCore.htmlで次のメソッドを使用できます。
javaファイルからrun(Request、Classクラス、およびRunnerを使用)またはrunClassesを実行します。
プロジェクトがAntベースの場合は、コンソールから次のようなことができるはずです。
ant test
これが機能しない場合でも、プロジェクトがAntベースである場合は、実行ant -p
してプロジェクトの主なターゲットを一覧表示できます。