ドキュメント から :
そして、pre-integration-test
があります 、integration-test
およびpost-integration-test
テスト環境のセットアップ、実行、破棄に使用されます。
そのため、integration-test
でこれを行う方が簡単で、はるかにクリーンです。 maven-failsafe-plugin
を使用したフェーズ
。
さて、本当にそれを単体テストとして実行したいのであれば、データベースの作成/削除をMavenプラグインとして記述しません。アプリケーションがテスト環境で構成されている場合は、アプリケーションにテストデータベースを作成させる方がはるかに優れています。 (たとえば、Springを使用している場合は、そのための機能がたくさんあります。)
そして、それを本当にtest
の単体テストとして実行したい場合 フェーズ、および プラグインを使用する場合は、maven-surefire-plugin
のデフォルトの実行をスキップする必要があります。 次に、データベースを作成するMavenプラグインの実行、maven-surefire-plugin
の新しい実行を定義します。 test
にバインドされた、データベースをドロップするMavenプラグインの実行 フェーズ。
これが機能するのは、Mavenがasの順序でプラグインを呼び出すためです。それらはPOMで定義されています それらが同じフェーズにバインドされているとき。
構成は次のようになります:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<executions>
<execution>
<id>default-test</id>
<configuration>
<skip>true</skip>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId><!-- group id of your plugin --></groupId>
<artifactId><!-- artifact id of your plugin --></artifactId>
<version><!-- version --></version>
<executions>
<execution>
<id>create-db</id>
<phase>test</phase>
<goals>
<goal><!-- your goal --></goal>
</goals>
<!-- add configuration -->
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<executions>
<execution>
<id>test</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId><!-- group id of your plugin --></groupId>
<artifactId><!-- artifact id of your plugin --></artifactId>
<version><!-- version --></version>
<executions>
<execution>
<id>drop-db</id>
<phase>test</phase>
<goals>
<goal><!-- your goal --></goal>
</goals>
<!-- add configuration -->
</execution>
</executions>
</plugin>