0

mvn integration-testを使用してキュウリ試験を行います。テストディレクトリにError parsing feature fileで終わるテストが含まれていると、次のテストはまったく実行されません。mavenの構文解析エラーでキュウリ試験をスキップする方法は?

私は4つの.featureファイルを持っていますが、そのうちの1つに無効なステップ(解析されていない)が含まれています。その手順を削除した場合、4つのファイル(Tests run: 23, Failures: 2, Errors: 0, Skipped: 3)、

の場合は正常に実行されます。次のメッセージが表示されます。Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.078 sec <<< FAILURE!私は、Mavenのは、最初の1で停止しないように、1つの無効な機能ファイルの後にテストを続けたいので、私はTests run: 24, Failures: 2, Errors: 1, Skipped: 3のようなもの(私の解析できないステップが最後のものである)私のpom.xmlの

フラグメント必要があります。

    <plugin> 
        <artifactId>maven-failsafe-plugin</artifactId> 
        <version>2.18.1</version> 
        <executions> 
         <execution> 
          <goals> 
           <goal>integration-test</goal> 
           <goal>verify</goal> 
          </goals> 
         </execution> 
        </executions> 
        <configuration> 
         <systemPropertyVariables> 
          <cucumber.options>${cucumber.options}</cucumber.options> 
         </systemPropertyVariables> 
        </configuration> 
       </plugin> 

質問:エラーの後、他のキュウリの機能と一緒にmavenを続けることができますか?

+0

あなたは 'pom.xml'ファイルの関連部分を共有できますか? –

+0

機能ファイルにignoreタグを設定します。また、ランナーの否定を使用して無視タグを除外します。 tags = {"〜@ ignore"}。あなたが他のタグを持っているなら、この '無視しない'タグにAND条件を付けます。 – Grasshopper

+0

あなたのコメントのための@Grasshopperありがとうございますが、私はそれに任意のタグを入れたくありません、私はエラーとしてテストをマークし、作業を続けるために必要です。 –

答えて

2

解析エラーのみをスキップすることはできません。テスト実行のエラーの種類については認識されていません。

しかし、あなたはmaven-failsafe-pluginmaven-surefire-pluginskipAfterFailureCountオプションを使用して(あなたのテストスイートまたは一定の許容故障率まで最後までテストを保つために)許容できる故障の一定数を得ることができ、あなたの経験に基づいてsameを持っていますあなたがそれを使用している場合のオプション)。また

、そしてより強力なアプローチで、あなたがテスト中に障害を無視し、そのverify目標やmaven-surefire-pluginためsameオプションのmaven-failsafe-plugintestFailureIgnoreを使用することによって、全体スイートのテストに保つためにMavenのビルドを設定することがあります。

あなたはデフォルトのビルドとしてあなたpom.xmlでそれらを設定しない場合、あなたはmaven profileにこの動作を委任したり、それぞれのコマンドラインオプションを使用できます。最初のオプションを使用する

mvn clean verify -Dmaven.test.failure.ignore=true 

か(を上記)

mvn clean verify -Dsurefire.skipAfterFailureCount=42 

または(あなたが使用したプラグインによって異なります)

mvn clean verify -Dfailsafe.skipAfterFailureCount=12 
統合テストは、アップを設定し、適切にあなたがすべきこのような場合には統合テストを実行するために、反対統合するコンテキスト/ ENVを取り壊すことになっているので、私は相として verifyなく integration-testを使用

注:

  • あなたの統合テスト・フェーズ
を清掃し、実行し、正しくセットアップに pre-integration-test,統合テスト and統合後-test`を使用 maven-failsafe-pluginしていない maven-surefire-plugin
  • を使用します
  • +0

    ありがとうございます。私はフェイルセーフプラグインを使用しましたが、残念ながら、これは私を助けませんでした。私は質問を編集し、詳細を追加しました。 –

    +0

    @БогданТимофеевフェイルセーフ宣言の 'configuration'に' testFailureIgnore'を 'true'に追加し、それがあなたの要件を満たすかどうかをチェックしようとしましたか? –