sql >> データベース >  >> RDS >> Mysql

テストフェーズの後に常に実行されるMavenフェーズはどれですか?

    Mavenライフサイクル これは、事前テストと事後テストに対応します。これは、単体テストが外部環境を必要としないことを想定しているためです。ユニットテストではなく統合テストを実行する必要があるようです。環境をセットアップする必要があるためです。

    ドキュメント から :

    そして、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>
    



    1. goDaddyWebサイトでデータベースユーザーのアクセスが拒否されました

    2. フォーラムソフトウェアは、モデレート時にトピック/投稿を文字通り削除する必要がありますか、それとも単に非表示にする必要がありますか?

    3. MySql接続でSSLを使用しているかどうかをどのように判断しますか?

    4. TSQLのCOALESCE関数