multiple ways execute junit tests
このチュートリアルでは、JUnitテストとして実行する、ショートカットキーを使用する、コマンドラインからJUnitテストを実行するなど、JUnitテストを実行する複数の方法を示します。
前のチュートリアルでは、基本的なJUnitテストケースを作成する方法と、JUnitの優れたプログラミングプラクティスの1つとしてテストフィクスチャアプローチを使用する方法を説明しました。
このチュートリアルでは、JUnitのテストを実行するために使用できるさまざまな方法を見てみましょう。これらのテストケースを実行するために利用できるオプションの数を見ると驚くでしょう。
=> ここで簡単なJUnitトレーニングシリーズに注意してください。
学習内容:
JUnitテストを実行するさまざまな方法
JUnitテストを実行するために、次のオプションを使用して、1つまたは複数のテストメソッドを使用して単一のクラスファイルを実行できる特定の方法があります。
- 「JUnitテストとして実行」オプション。
- メニューオプションを使用して、最後に実行されたJUnitテストを実行します。
- ショートカットキーを使用して実行します。
- クラスで1つのテストメソッドのみを実行します。
- コマンドラインから実行します。
- Testrunnerクラスファイルを使用して実行します。
- Mavenを使用して実行します。
注意: Mavenを介したJUnitテストの実行は、JUnitMavenの別のチュートリアルで検討されます。
このチュートリアルでは、複数のテストを1つのテストスイートにグループ化する方法と、スイートをさまざまな方法で実行する方法について説明します。 さらに、特定の関連および関連する追加情報を詳述するものとします。
#1)JUnitテストとして実行
JUnitテストを実行する最も簡単な方法は次のとおりです。
方法1:
- スクリプトビューでクラスファイルを右クリックします
- 選択する 実行-> JUnitテスト
- クラスファイルが実行されます。
方法2:
- 同様に、パッケージエクスプローラービューからクラスファイルを選択できます。
- ファイルを右クリックします
- 選択する 実行-> JUnitテスト
- クラスファイルが実行されます。
注意: このようにして、一度に1つのクラスファイルを実行できます。

#2)メニューオプションを介して最後に実行されたJUnitテストを実行する
エディターでクラスファイルを開いたままにして、JUnitクラスファイルを実行できます。のトップメニューに移動します Eclipse => (実行) => (実行)を選択します 。 オプション 実行->実行 基本的には、最後に実行したテストを再実行することを意味します。
方法をより明確にするために、複数のメソッド/テストを持つJUnitクラスについて考えてみましょう。 実行->実行 作品:
- シナリオ1 :実行した場合 単一の方法 @Testを使用して、クリックすると 実行->実行 、最後に実行された単一のメソッドは今回のみ実行され、JUnitクラス全体は実行されません。
- シナリオ2 :あなたは実行しましたが クラス全体 以前は、 実行->実行 クラスファイル全体を再実行します。
Run-> Runが最後に実行したテストを実行することがわかったので、これにより、 質問 (実行)-> (実行)オプションの設定を変更できる場合はどうなりますか?
質問への答えは「はい」です。「実行」->「実行」オプションの設定を変更できます。 Run-> Runには特定の構成が添付されています。
これを行う方法は次のとおりです。
に) Eclipseの実行設定は基本的にデフォルトで 起動可能な場合は、選択したリソースまたはアクティブなエディターを実行します 。
では、デフォルト設定は何ですか– 「起動可能な場合は、選択したリソースまたはアクティブなエディターを実行しますか?」
これに対する答えは、最後に起動したアプリケーションを実行するのではなく、最後に起動したアプリケーションの再実行に続くということです。 アクティブなエディター 。
b) 次に、デフォルトの設定をどのように変更しますか?
これに対する答えは、Eclipseのデフォルト設定を変更して、最後に起動したアプリケーションを実行できることです。 アクティブなエディターに関係なく あなたが持っている。
以下は、実行->実行を使用して実行オプションの設定を変更する方法です。
- 案内する Windows =>設定=>実行/デバッグ=>起動
- 「起動操作」にはデフォルトのラジオボタンがあります– ' 以前に起動したアプリケーションを起動します」 2番目のオプション「 選択したリソースまたはアクティブなエディターを起動します。起動できない場合 : ’。
- この設定を最初のラジオボタンに変更する必要がある場合があります。 ' 以前に起動したアプリケーションを常に起動してください。

#3)ショートカットキーを使用して実行する
スクリプトビューまたはパッケージエクスプローラービューからクラスファイルを選択し、以下のショートカットキーを使用してJUnitテストを実行できます。
- キーを押す ALT + SHIFT + X、T JUnitクラスファイルを実行するため。
- これに代わるものはプレスです ALT + R、次にCTRL + F11 JUnitクラスファイルを実行します。 ALT + R、次にCTRL + F11 メニューオプションのショートカットです 実行->実行
#4)クラスで1つのテストメソッドのみを実行する
場合によっては、単一のJUnitテストメソッドを実行したいことがあります。
JUnitクラスファイル内に複数のメソッドがある場合:
- スクリプトビュー内のメソッドの名前を選択するか、カーソルを置くことができます。
- 上記のショートカットキーまたは上記のオプションを使用して、選択したメソッドのみを実行します。
注意: ALT + SHIFT + X、Tは、選択したメソッドを期待どおりに実行できます。ただし、JUnitクラスで特定のメソッドを実行する場合は、@ Testアノテーションが付けられたテストケースである必要があります。そうでない場合は、初期化エラーが表示されます。
つまり、@ Beforeまたは@After(@Test以外のアノテーション)でメソッドを選択すると、特定のメソッドの実行でエラーが発生します。
#5)コマンドラインからJUnitテストを実行する
コマンドラインからJavaクラスファイルを実行するのと同様に、コマンドラインからJUnitクラスファイルをコンパイルして実行することもできます。
コマンドラインからJUnitテストを実行する方法を理解するために、ここでは以下のサブトピックについて説明します。
- コマンドラインでJUnitテストをコンパイルする方法は?
- コマンドラインでJUnitテストを実行するにはどうすればよいですか?
- コマンドライン実行に関する追加情報。
- javacコマンドの認識されないコマンドエラーを修正するにはどうすればよいですか?
- コマンドラインを使用してテストを実行する利点。
#5.1)コマンドラインでJUnitテストをコンパイルする方法は?
コマンドプロンプトを介してJUnitクラスファイルをコンパイルして実行するための前提条件は次のとおりです。
- まず、関連するJUnitjarファイルをクラスパスに追加します。
- で述べたように環境変数を設定します JUnitのセットアップ チュートリアル。
- 次に、JUnitクラスファイルをコンパイルします。
- コマンドラインからJUnitクラスファイルをコンパイルするための構文は次のとおりです。
javac -cp junit-4.0.0.jar;. JUnitProgram.java ここで、javacは-cpオプションを使用するJavaコンパイラです。
コマンド javac -cp 次のパラメータを探します。
- JUnitjarファイルの後にセミコロンが続きます。
- ソースファイルが存在するディレクトリのパス。
- クラスファイル名
上記の構文で、ドット(。)は何を意味しますか?
ディレクトリのパス全体の代わりにドットについて説明しました。
ドットは次のことを意味します。
- クラスパスには、Javaソースファイルの現在のディレクトリがすでに含まれています。
- JVM(Java仮想マシン)は、現在のディレクトリがソースファイルが配置されている場所であると自動的に想定します。
- 次に、JVMはそこで言及されたJUnitファイル名を検索します。ファイル名は、コンパイルコマンドで指定された最後のパラメーターです。
次の手順で、-cpに入るパラメータを確認できます。
- コマンドプロンプトを開きます。
- javacと入力し、Enterキーを押します。
- -cpを含むすべての関連オプションが表示されます。 -cpは、JVMが検索するクラスファイルパスであるパスがパラメータとして使用されることがわかります。
以下のスクリーンショット:

複数のファイルを一度にコンパイルする方法は?
ファイル名をスペースで区切ることにより、複数のJUnitテストファイルを一度にコンパイルできます。
以下に示すのは、JavaファイルJUnitProgramとdemoTestをコンパイルする場所の例です。
javac -cp junit-4.0.0.jar;. JUnitProgram.java demoTest.java #5.2)コマンドラインからJUnitテストを実行する方法は?
javacが使用されるJavaコンパイラと同じように、同様に java -cp JUnitクラスを含むJavaクラスファイルを実行するために使用されます。
以下は、従うことができる構文です。
java -cp junit-4.0.0.jar;. JUnitProgram demoTest このコマンドは、ファイルJUnitProgram.javaとdemoTest.javaの両方を次々に実行します。
#5.3)「コマンドライン実行」に関する追加情報。
C ++コーディングの面接の質問
ここにいくつかの追加情報があります javacコマンドでエラーを修正する方法 そして コマンドライン実行オプションを使用する理由
#5.3.1)javacコマンドの認識されないコマンドエラーを修正するにはどうすればよいですか?
私たちのほとんどは、実行しようとしているときにこの問題に遭遇します javac コマンドラインからコマンドを実行します。これは私にも起こりました。そこで、ここにペンを書くことを考えました。
に) コマンドを入力しました javac と押された 入る コマンドプロンプトで。
b) エラーメッセージ– javacは、内部または外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されません。 以下のように表示されました:

ここから、コマンドラインからのJavaクラスファイルのコンパイルが始まります。したがって、エラーは確かに懸念事項であり、無視することはできません。
この問題を解決するには、以下の手順に従ってください。 ここは!!! エラーがなくなったことがわかります。
- 基本的なJavaファイルを使用してこのプロセスをデモしてみましょう。あなたができる最初のステップは、基本的なJavaクラスを作成することです 例えば。 :「calculator.java」
- WindowsエクスプローラーからCalculate.javaを見つけて、パスをコピーします。

- コマンドプロンプトのディレクトリを、コピーしたパス(ソースファイルのパス)に変更します。 cdを使用してディレクトリを変更します。

- 次に、コマンドを使用してPATHをjdkbinフォルダーに設定します。
SET PATH =を設定し、Enterキーを押します。
- ここで、jdkパスはC: Program Files Java jdk1.8.0_181 binです。したがって、それに応じてパスを設定しました。コマンドの後にEnterキーを押しても、結果には何も表示されません。

- 次に、JVMがコマンドを認識するかどうかを確認します javac コマンドjavacを入力し、Enterキーを押します。
-
- コマンドを認識した場合、javacの有効なオプションのセットが結果として表示されます。
- それ以外の場合、エラーが再び表示されます。
以下に示すのは、エラーを正常に取り除いたことを示すスクリーンショットです。

ここで本質的な質問を避けようとしないでください。
jdk binフォルダーへのパスを設定した後、JVMがjavacコマンドを認識したのはなぜですか?
私たちはあなたもあなたの心の中にこの質問があると確信しています。以下にその答えがあります。
- jdk binフォルダーには、javacコマンドのすべてのライブラリーがあります。したがって、これに応じてパスを設定すると、JVMが問題なくjavacコマンドを認識できるようになります。
- を参照してください javacフォルダー 下の画像のjdkビンの下。

- 次に、コマンドラインを使用して「Javaコンパイルして実行」コマンドを実行できます。また、CLASSPATH変数を適切に設定することも忘れないでください。 JavaファイルとJUnitファイルのそれぞれのJAVA_HOME変数とJUNIT_HOME変数。
#5.3.2)コマンドラインを使用してテストを実行する利点:
コマンドラインからJava / JUnitテストケースを実行するよりも優れている点について簡単に説明します。
すでにご存知のように、コマンドラインを介したクラスファイルの実行に関する厳格なルールはありません。これは、クラスファイルのコンパイルと実行を管理する方法に関する代替方法にすぎません。
コマンドラインを介してJUnitテストを実行するためのノウハウを持つことに特別な利点があるかどうかを尋ねると、「確かに、はい」と答えます。
「はい」の理由は以下のとおりです。
- 上記で実行したこれらすべての一連の手順。メモ帳に追加して、バッチファイルに変換できます。
- これで、このバッチファイルをダブルクリックで実行すると、バッチファイルで指定された複数のJUnitテストファイルのコンパイルと実行がトリガーされる可能性があります。
バッチファイルでJavaファイルのコンパイルと実行を行うことの利点は何ですか?
- バッチ/ jarファイルは、コードの内部ロジックを知らない人を可能にし、複数のテストケースを非常に簡単に実行できるユーザーフレンドリーなユーティリティのように機能する場合があります。
- これにより、これらのテスト実行ジョブを実行するために専門の開発者またはQAを用意する必要がなくなる場合があります。実行タスクは、スキルの制約を気にすることなく、任意のリソースに委任できます。
次の代替オプションでは、JUnitテストケースを実行するためのもう1つの有利で称賛に値する方法を紹介します。
#6)Testrunnerクラスを使用してTestSuiteを実行する
リアルタイムのシナリオでは、一度に1つのテストケースを実行することは最も好ましくないオプションです。
- 関連する/関連しないテストケースのグループを実行する必要がある場合があります。
- たとえば、回帰テストスイートまたはスモークテストスイートを作成して実行する必要がある場合があります。
ここで、テストスイートの作成とスイートの実行に使用されるさまざまなアノテーションの実装について学習します。
Test Runnerを使用してテストスイートを実行する全体的なプロセスは、以下のワークフローのとおりです。
- JUnitクラス1、JUnitクラス2、…を作成します。 JUnitクラスn。
- テストケースをグループ化したテストスイートクラスファイルを作成します。
- Testrunnerクラスファイルを作成して、作成したテストスイートを呼び出します。
- Testrunnerクラスを実行します。
テストスイートの作成とランナーファイルの実行をデモするプログラムの構造を次の画像に示します。

ここでは、サブトピックについて説明します。
- JUnitクラスの作成
- テストスイートの作成
- Testrunnerファイルを作成し、それを使用してテストスイートを実行します。
- @RunWithアノテーションの動作に関する追加情報。
#6.1) JUnitクラスの作成
2つの単純なJUnitクラスファイルを作成することから始めましょう。
- JUnitTestCase1.java –期待される数値を検証するためのコードが含まれています–変数 値1 変数の実際の値と一致します 値2。
- JUnitTestCase2.java –予期される文字列変数かどうかを確認するためのコードが含まれています strValue および実際の文字列変数 strActual 一致します。
これらは基本的に2つのテストケースであり、テストスイートと呼ばれる論理グループに入り、次々に実行するようにします。
JUnitTestCase1.javaのコード
package demo.tests; import static org.junit.Assert.*; import java.util.*; import java.lang.String; import static org.testng.Assert.assertTrue; import org.junit.Before; import org.junit.Test; import junit.framework.Assert; public class JUnitTestCase1 { public int Value1=6000; @Test public void junitMethod1(){ int Value2=9000; Assert.assertEquals(Value1, Value2); } } JUnitTestCase2.javaのコード
package demo.tests; import static org.junit.Assert.*; import java.util.*; import java.lang.String; import static org.testng.Assert.assertTrue; import org.junit.Before; import org.junit.Test; import junit.framework.Assert; public class JUnitTestCase2 { public String stringValue='JUnit'; @Test public void junitMethod2(){ String strActual='Junit1'; Assert.assertSame(stringValue, strActual); } } #6.2) テストスイートの作成:
このセクションと次のセクションは、テストスイートの作成と実行のプロセス全体で重要な役割を果たします。このセクションでは、理解しようとします 複数のJUnitテストクラスをグループ化してテストスイートにバインドする方法 。
上記の構造イメージに従って、JUnitTestCase1.javaとJUnitTestCase2.javaをグループ化したテストスイートを作成し、スイートにJUnitTestSuite.javaという名前を付けましょう。
テストスイートの作成を実現するのに役立つ2つのアノテーションは次のとおりです。
- @RunWithと
- @SuiteClasses
注釈に必要なパッケージ:
- パッケージorg.junit.runner.RunWithをインポートする必要があります。 @RunWithアノテーションを含めるため。
- @SuiteClassesを機能させるには、パッケージorg.junit.runners.Suite.SuiteClassesが必要です。
- さらに、パラメーターSuite.classをアノテーション@RunWithに渡すために、パッケージorg.junit.runners.Suiteをインポートする必要もあります。
理解を深めるためにコードを調べてみましょう!!
JUnitTestSuite.javaのコード
package demo.tests; import static org.junit.Assert.*; import org.junit.After; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; @RunWith(Suite.class) @SuiteClasses({JUnitTestCase1.class, JUnitTestCase2.class }) public class JUnitTestSuite { @BeforeClass public static void printMe() { System.out.println('JUnitTestSuite is the test suite grouping testcase 1 and testcase 2'); } }JUnitTestSuite.javaのコードの理解:
- @RunWithは、JVMが実行する必要があるランナークラスの種類を理解するのに役立ちます 例えば。 Suite.classまたはCucumber.class
- ここで、@ RunWithのパラメータは Suite.class 。これは、@ RunWith(Suite.class)が使用されている現在のファイルがテストスイートで役割を果たすことをJVMが認識するのに役立ちます。
- スイートで一緒にバインドされるJUnitテストクラス名は、それぞれがコンマで区切られた@SuiteClassesのパラメーターの形式で文字列配列として渡される必要があります。
- これにより、JVMは、スイートの下でグループ化する必要があるすべてのテストケースを知ることができます。
- スイート名は、@ RunWithおよび@SuiteClassesでアノテーションが付けられたJUnitクラスファイル名になります。この場合はJUnitTestSuiteです。
#6.3) テストランナーファイルを作成し、テストランナーを使用してJUnitテストスイートを実行します
最後のステップは、Testrunnerファイルを使用して上記のセクションで作成したテストスイートを実行するのに役立ちます。
- 次に、SuiteRunnerFileという名前のJavaファイルを作成します。
- このSuiteRunnerFile.javaはJUnitクラスではなく、mainメソッドを含む通常のJavaファイルです。
コードを見て、理解してみましょう。
SuiteRunnerFile.javaのコード
package demo.tests; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; public class SuiteRunnerFile { public static void main(String args()) { Result result=JUnitCore.runClasses(JUnitTestSuite.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } } } 注釈に必要なパッケージ
- を含めるには、パッケージorg.junit.runner.JunitCoreをインポートする必要があります。 JUnitCore コード内のクラス。
- パッケージorg.junit.runner.notification.Failureとorg.junit.runnerをインポートする必要があります。コードにそれぞれFailureクラスとResultクラスを含める結果。
SuiteRunnerFile.javaのコードの理解
- テストスイートを実行するためのランナーファイルを作成するために、 JUnitCore クラスは重要な役割を果たします。
- ザ・ runClasses ()の方法 JUnitCore classは、テストスイートのクラス名を入力パラメーターとして受け取るため、ステートメントJUnitCoreがあります。 runClasses (JUnitTestSuite。 クラス )。
- このステートメントの戻り値の型は 結果 各テストケースファイルの結果の成功ステータスと失敗ステータスを格納するクラスオブジェクト。実行後。これが私たちが持っている理由です 結果 として 結果 コード内のクラスオブジェクト。
- 次に、テストケースの失敗があればそれを印刷します。 getFailures()メソッドと同様に、getFailureCount()メソッドとgetRunCount()メソッドをそれぞれ使用して、失敗カウントと実行カウントを取得することもできます。
- これで、SuiteRunnerFileを実行する準備が整いました。
- パッケージエクスプローラーからファイルを選択し、
- 右クリックして(実行)-> (Java)を選択すると、プログラムが実行されます。
以下に、コンソールウィンドウのスクリーンショットを示します。

コンソールでの結果の説明:
上記のコンソールは次のことを示しています。
- JUnitTestSuiteクラスファイルはSuiteRunnerFileを介して実行されました。
- アノテーション@BeforeClassの下のprintMe()メソッドが最初に実行され、
- 次に、テストスイートのテストケースが次々に実行されました。これは、テストスイートを作成してパッケージとして実行する方法です。
#6.4) 追加情報– @RunWithはどのように機能しますか?
- @RunWithは、基本的にランナークラスファイル名である入力パラメーターとして1つの要素のみを受け取るJUnitAPIです。
- JUnitフレームワークは、指定されたクラスをテストランナーとして呼び出します。
以下のRunWith.javaのスニペットは、把握するのに役立ちます。
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @Inherited public @interface RunWith { Class Extends Runner> value(); } 上記のRunWithインターフェースコードを理解する:
- 指定された 値 要素は、の派生クラスである必要があります ランナー クラス 。ここでは、反射の概念が使用されています。
- このようなランナークラスの非常に良い例は、コードにすでに実装されています。つまり、@ RunWith(Suite.class)では、テストケースのグループがバインドされてテストスイートが作成されます。
- 同様に、@ RunWithでRunnerクラスを使用する別の良い例は、JavaでSeleniumを使用するテスト自動化のためのビジネス主導型開発(BDD)フレームワークである@RunWith(Cucumber.class)です。これは、フレームワークがCucumberベースのテストケースを実行するのに役立ちます。
注意:
- このチュートリアルでJUnitテストスイートを作成および実行するために使用されるアノテーションとパラメーターは、JUnit4に固有のものでした。
- JUnit Test Suiteを作成し、JUnit5でランナーファイルを実行する方法は少し異なります。
今後のチュートリアルでは、JUnit4とJUnit5のすべての側面について焦点を絞って理解する予定です。
#7)Mavenを使用してJUnitテストケースを実行する
また、JUnitテストで構成されるMavenプロジェクトを配置し、別のチュートリアルで説明するMavenを介してテストを実行することもできます。
結論
- JUnitテストを実行するためのさまざまなオプションをすべて学びました。単一のテストだけでなく、複数のテストをテストスイートにグループ化したものです。
- Runオプションの設定を更新する方法、javacエラーを修正する方法、およびコマンドラインの実行がどのように役立つかについての追加の知識を得ました。
- さらに、@ RunWithアノテーションがどのように機能するかについても学びました。
したがって、今後のチュートリアルで従うべきことがもっとあります。それまでは「スタンバイ」!!!
=> JUnitを最初から学ぶには、ここにアクセスしてください。