これが容易であり、また、(私の場合は、FlexUnitTests)非確実なテストのために働くの利点を持っていると思いますあなたは、実際のだろうbuild-helper-maven-plugin
へ
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.12</version>
<executions>
<execution>
<id>regex-property</id>
<goals>
<goal>regex-property</goal>
</goals>
<configuration>
<name>maven.test.skip</name>
<value>${project.artifactId}</value>
<regex>(module1)|(module3)</regex>
<replacement>true</replacement>
<failIfNoMatch>false</failIfNoMatch>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<modules>
<module>module1</module>
<module>module2</module>
<module>module3</module>
</modules>
ありがとう:カスタム設定とプロファイリングとモジュールpom.xml
ファイルのそれぞれを変更することなく、唯一の特定のモジュールでテストをスキップするには、親pom.xml
ファイルに以下を追加することができますビルド中にプロパティ(ビルド中に各artifactId
モジュールを指している)を介してビルド中に特定のモジュールにいるかどうかを動的にチェックすると、正規表現は特定の値(スキップするモジュール名テスト)、それに応じてmaven.test.skip
プロパティを設定します(true
に設定)。
この場合、module2
で正しく実行されている間、つまり正規表現のとおりに、module1
とmodule3
のテストはスキップされます。
このアプローチの利点は動的で集中化されているため(親でpom.xml
)、メンテナンスの面で優れています。上記の単純な正規表現を変更するだけでいつでもモジュールを追加または削除できます。明らかに
これは、ビルド(推奨ケース)のデフォルトの動作ではない場合、あなたは常にmaven profileで上記のスニペットをラップすることができます。
また、さらに行くと、あなたの入力に基づいて動的挙動を持つことができます:ここで
<properties>
<test.regex>none</test.regex>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.12</version>
<executions>
<execution>
<id>regex-property</id>
<goals>
<goal>regex-property</goal>
</goals>
<configuration>
<name>maven.test.skip</name>
<value>${project.artifactId}</value>
<regex>${test.regex}</regex>
<replacement>true</replacement>
<failIfNoMatch>false</failIfNoMatch>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
私たちが実際にnone
にデフォルト値で、test.regex
、プロパティで正規表現の値を交換する(または何任意のモジュール名と一致しないか、またはデフォルトスキップマッチングが必要です)。
は次にコマンドラインから、私たちは、その後、実行時にあなたがpom.xml
ファイルまたは任意のプロファイルをアクティブ化を変更する必要なしに、決定され
mvn clean test -Dtest.regex="(module1)" > will skip tests only for module1
mvn clean test -Dtest.regex="(module1)|(module2)" > will skip tests on module1 and module2
mvn clean test -Dtest.regex="(module1)|(module2)|(module3)" > will skip the three module tests
mvn clean test -Dtest.regex=".+" > will skip all module tests
mvn clean test > would not skip anything (or fall back on default behavior)
を持つことができます。あなたは単にあなたが正規表現を使用したくないテストを除外することができシュアプラグイン2.19を使用して
ありがとうございました。最初のコードスニペットはテストをスキップします。私は後で別のプロファイルを定義するためにあなたのさらなる提案を使用するかもしれません。 私の混乱は、私のポンが暗黙のうちに確実に呼びかけているという事実にありました。私のpom.xmlに確実なプラグインの言及はありませんでした。それにもかかわらず、surefireプラグインを正しく設定するためのコードは、そうしました。 –
他にも、ビルドと検証を行うまで、モジュール全体をスキップすることもできます:http://stackoverflow.com/a/5542779/543935 – yellavon
ここでは、テストを実行するMavenプロファイルを作成する方法を示しますそれはアクティブになっています:http://stackoverflow.com/questions/34334257/why-maven-runs-profile-plugin-even-if-profile-is-not-activated/41808680#41808680 – Vadzim