2017-08-14 13 views
1

なぜcorecttlyで動作しないのでしょうか?私はMavenを介して統合(フェールセーフプラグイン)とユニット(確実なプラグイン)を開始するitlest profleを持っています。 私の設定:Maven統合テストとプロファイル付きユニットテスト

<plugins> 
    <plugin> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <configuration> 
       <skip>${unit-tests.skip}</skip> 
       <excludes> 
        <exclude>**/*IT.java</exclude> 
       </excludes> 
      </configuration> 
     </plugin> 
     <plugin> 
      <artifactId>maven-failsafe-plugin</artifactId> 
      <executions> 
       <execution> 
        <goals> 
         <goal>integration-test</goal> 
         <goal>verify</goal> 
        </goals> 
        <configuration> 
         <skip>${integration-tests.skip}</skip> 
         <includes> 
          <include>**/*IT.java</include> 
         </includes> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
</plugins> 

プロファイル

<profile> 
     <id>itTest</id> 
     <properties> 
      <propFile>profiles/itTest.properties</propFile> 
      <spring.profile>itTest</spring.profile> 
      <integration-tests.skip>false</integration-tests.skip> 
      <unit-tests.skip>false</unit-tests.skip> 
     </properties> 
    </profile> 

結果:両方のテストはスキップされます...でも私は偽、それはまだdoesntの仕事にプロファイルまたはハードコードされたスキップを変更。

+0

最初に、maven-surefire-pluginの除外は単純に冗長で、maven-surefire-pluginのデフォルトになります。 maven-failsafe-pluginのインクルードも冗長で、maven-failsave-pluginのデフォルトです... – khmarbaise

+0

実際に 'mvn -P itTest'でプロファイルをアクティブ化しましたか? –

+0

はい、私はIntellijインターフェイスを介して私はどこで私はプロファイルとコマンドが検証されているが、私はそれとユニットテストのためのtrueを変更する場合は、コマンドを宣言することを行う –

答えて

0

あなたの設定が何をしたいのかがわからない(おそらくプロパティが評価される順序に関するものなので、プロパティはリセット時に既に評価されている)これを処理するには、プラグイン設定全体をプロファイルに入れることです。

+0

はい、解決する可能性があります。他のプロファイルで使用できるグローバルプラグインがあります(確実なものとフェイルセーフを管理するための変数を宣言します) –

+0

あなたの考え方とその外観を詳細に詳しく説明できますか? – khmarbaise

+0

よろしいですか?私はこれらの変数(unit-test.skip、integration-test.skip)を持つ3つのプロファイルを持っていると仮定し、今度はitTestだけで両方のテストを実行しますが、将来、私はfexibleになりたいと思います。私の1つのプロファイルは、私が必要とするのは、この特定のプロファイルの変数をfalseからtrueに変更するだけです。これは私がitTestプロファイルにそれを取り入れたくない理由です。 –

0

両方のプラグインをデフォルトにしてスキップするのではなく、単にプロファイル自体でプラグインを宣言することができます。 I.

<profile> 
    <id>itTest</id> 
    <plugins> 
     <plugin> 
     <artifactId>maven-failsafe-plugin</artifactId> 
     <executions> 
      <execution> 
       <goals> 
        <goal>integration-test</goal> 
        <goal>verify</goal> 
       </goals> 
       <configuration> 
        <includes> 
         <include>**/*IT.java</include> 
        </includes> 
       </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    <plugins> 
関連する問題