2016-08-11 5 views
0

現在、私のインテグレーションテストは、mvn installを実行したときにのみ実行されます。 mvn testを実行すると、それらを実行させたいと思います。"mvn test"コマンドを呼び出している間に統合テストを実行しないのはなぜですか?

マイ<pluginManagement>セクションは含まれています

<pluginManagement> 
    <plugins> 
     ... 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-failsafe-plugin</artifactId> 
      <version>2.18.1</version> 
      <executions> 
       <execution> 
        <id>integration-test</id> 
        <goals> 
         <goal>integration-test</goal> 
         <goal>verify</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
    ... 
</pluginManagement> 

は、どのように私は私が唯一の目標testを与えたときに統合テストを実行することができますか?

+0

なぜ? 'integration-test'フェーズで呼び出され、必要に応じて' mvn verify'を呼び出すことができます。 – Tunaki

+0

(この問題のタイトルが修正されました)。私はこれが可能かどうかを知りたい。そしてどうやって。 –

+2

私の質問は同じです: 'mvn test'を実行しているときにあなたのITをなぜ呼びたいのですか?これらは通常 'integration-test'段階で呼び出され、通常は' mvn verify'を呼び出してITsを実行し、 'post-integration-test'段階のものが実行されるようにします。 – Tunaki

答えて

1

実際には、統合テストの実行には特別なフェーズ があります。

  • pre-integration-test - テスト環境を設定します。
  • integration-test - テストを実行します。
  • 統合後テスト - 統合テスト環境を停止します。
  • 結果を確認してください。

あなたは

mvn integration-test 

を呼び出し、それが失敗した場合、統合後のテストフェーズは呼び出されませんので、彼らは、順番に実行します。

しかし、あなたは「テスト」相内にそれを呼び出すようにしたい場合は、単に適切な位相にテストを移動:

<plugins> 
     ... 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-failsafe-plugin</artifactId> 
      <version>2.18.1</version> 
      <executions> 
       <execution> 
        <id>integration-test</id> 
        <goals> 
         <goal>integration-test</goal> 
         <goal>verify</goal> 
        </goals> 
       <phase>test</phase> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
-1

単体テストとは異なり、統合テストはデフォルトでは実行されません。 統合テスト関連の設定でpom.xmlに別のプロファイルを作成し、そのプロファイルを使用して目標を指定する必要があります。次のように

<profiles> 
    <profile> 
     <id>integration-test</id>  // name of the profile 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.codehaus.mojo</groupId> 
        <artifactId>build-helper-maven-plugin</artifactId> 
        <version>1.9.1</version> 
        <executions> 
         <execution> 
          <id>add-integration-test-source</id> 
          <phase>generate-test-sources</phase> 
          <goals> 
           <goal>add-test-source</goal> 
          </goals> 
          <configuration> 
           <sources> 
            <source>src/integration/java</source>  // location where your code related to integration tests are present 
           </sources> 
          </configuration> 
         </execution> 
         <execution> 
          <id>add-integration-test-resources</id> 
          <phase>generate-test-resources</phase> 
          <goals> 
           <goal>add-test-resource</goal> 
          </goals> 
          <configuration> 
           <resources> 
            <resource> 
             <directory>src/integration/resources</directory>  // location where resources related to your integration tests are present 
            </resource> 
           </resources> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-failsafe-plugin</artifactId> 
        <version>2.19</version> 
        <configuration> 
         <failIfNoTests>false</failIfNoTests> 
         <redirectTestOutputToFile>true</redirectTestOutputToFile> 
        </configuration> 
        <executions> 
         <execution> 
          <goals> 
           <goal>integration-test</goal> 
          </goals> 
         </execution> 
        </executions> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
</profiles> 

今すぐあなたの統合テストを実行するために、あなたはMavenのコマンドを発行することができます:例えばのために

-P統合テストに

をインストールMVNクリーンここで-Pオプションがありますプロファイルを指定するために使用され、統合テストは以前にpom.xmlで作成したプロファイル名です

+0

重大な統合テストの概要を説明するのは良いトリックですが、迅速な場合は、検証フェーズ前にそれらを無条件で実行することに固執します。 – eckes

関連する問題