重複の可能性:
mavenでカテゴリ別にjunitテストを実行する方法
JUnit でのテストのグループ化について質問があります。
注釈が付けられたテストクラスがあります
@Category(IntegrationTests.class)
public class TestClass { ... }
IntegrationTests は単なるインターフェースです。
このカテゴリのテストのみを実行するmavenコマンドラインで指定できる方法はありますか?
どうもありがとう。
重複の可能性:
mavenでカテゴリ別にjunitテストを実行する方法
JUnit でのテストのグループ化について質問があります。
注釈が付けられたテストクラスがあります
@Category(IntegrationTests.class)
public class TestClass { ... }
IntegrationTests は単なるインターフェースです。
このカテゴリのテストのみを実行するmavenコマンドラインで指定できる方法はありますか?
どうもありがとう。
単体テストと統合テストの違いは、単純な命名規則です。
**/Test*.java
**/*Test.java
**/*TestCase.java
単体テストとして認識されます。また、 maven-failsafe-pluginに基づく統合テストは、別の命名規則によって認識されます。
**/IT*.java
**/*IT.java
**/*ITCase.java
既存の慣習に頼らないのはなぜですか?
mvn clean test
確実に単体テストを実行します。
mvn clean verify
フェイルセーフ経由で統合テストを実行します
命名規則または注釈を使用して、選択を強制できます。
thisIsAUnitTest.java will be executed by surefire (mvn test)
thisClassIsAnIT.java will be executed by failsafe (mvn verify)
どうやって ?!
デフォルトでは、Surefire プラグインは、次のワイルドカード パターンを持つすべてのテスト クラスを自動的に含めます。
"**/Test*.java" - includes all of its subdirectories and all java filenames that start with "Test".
"**/*Test.java" - includes all of its subdirectories and all java filenames that end with "Test".
"**/*TestCase.java" - includes all of its subdirectories and all java filenames that end with "TestCase".
デフォルトでは、Failsafe プラグインは、次のワイルドカード パターンを持つすべてのテスト クラスを自動的に含めます。
"**/IT*.java" - includes all of its subdirectories and all java filenames that start with "IT".
"**/*IT.java" - includes all of its subdirectories and all java filenames that end with "IT".
"**/*ITCase.java" - includes all of its subdirectories and all java filenames that end with "ITCase".