一部のモジュールで1つを除くすべてのテストをスキップするために、コマンドライン引数を提供する方法はありますか?したがって、別のテストを実行する必要があるたびにpom.xmlを変更する必要はありませんか?
たとえば、TeamCityでビルド構成を作成し、一部のモジュールで単一のテストのみを実行するためのコマンドライン引数を提供したいとします。次回はそれを変更して別のテストを実行する必要があります。
おそらく、CIの使用方法ではないかもしれませんが、それでもなおです。
一部のモジュールで1つを除くすべてのテストをスキップするために、コマンドライン引数を提供する方法はありますか?したがって、別のテストを実行する必要があるたびにpom.xmlを変更する必要はありませんか?
たとえば、TeamCityでビルド構成を作成し、一部のモジュールで単一のテストのみを実行するためのコマンドライン引数を提供したいとします。次回はそれを変更して別のテストを実行する必要があります。
おそらく、CIの使用方法ではないかもしれませんが、それでもなおです。
確実に単一のテストを実行することについてのドキュメントを読んだと思いますか?彼らがあなたに教えていないのは、サブモジュールでそれを行う方法です:
mvn test -Dtest=testname -pl subproject
subproject
そのテストを含むプロジェクトはどこにありますか。mvnのマニュアルページから:
-pl、--projects argすべてのプロジェクトの代わりに、ビルドする指定されたリアクタープロジェクトのコンマ区切りリスト。プロジェクトは、[groupId]:artifactIdまたはその相対パスで指定できます。
構築される他のサブモジュールに依存するプロジェクトについては、私が見る他の答えは完全ではありません。1つのオプションはmvn install
、必要なjarをインストールするために実行することです~/.m2/...
が、そのオプションはあまり「クリーン」ではありません。
次のコマンドは、サブモジュールをビルドし、指定されたテストクラスのみを実行します。これは、親モジュールレベルで実行されます。また、サブモジュール名を指定する必要はありません。
mvn test -DfailIfNoTests=false -Dtest={test_class_name} -am
余談ですが、これも可能mvn clean test -Dfa.....
です。clean
テストを実行するときは常に実行する習慣があります。
参照..
-am
他のすべてのサブモジュールを作成します。
-DfailIfNoTests=false
他のモジュールでテストを実行するつもりはないので、プロセス全体が失敗することはありません。すでにすべてを構築している
-pl
ので、オプションは必要ありません-am
テストするモジュールが他のプロジェクトに依存している場合、ソリューションは次のようにコマンドを変更することで機能します。
mvn test -DfailIfNoTests=false -Dtest=testname -pl subproject
FWIW、マルチモジュールプロジェクトがある場合は、親ディレクトリでこのコマンドを使用してすべてのテストを実行できます。
mvn test -pl subproject
また、subproject
の名前は、通常は。の形式で次のコマンドを実行することで見つけることができますgroup-id:artifact-id
。
mvn help:active-profiles