ミドルウェアが失敗したときに統合テストをすぐに失敗させる方法はありますか?

ダンクラム:

私たちのテスト環境には、ミドルウェア(CMSプラットフォーム、基盤となるDB、Elasticsearchインデックス)に依存するさまざまな統合テストがあります。

これらは自動化されており、Dockerを使用してミドルウェアを管理しているため、信頼性の低いネットワークの問題は発生しません。ただし、DBがクラッシュしてテストが失敗することがあります。

問題は、この障害の検出が大量のorg.hibernate.exception.JDBCConnectionExceptionメッセージを介して行われることです。これらはタイムアウトを介して発生します。その場合、何百ものテストがこの例外で失敗し、各テストが失敗するまでに数秒かかります。その結果、それはとり、年齢、完全に我々のテストのために。実際、通常、これらのビルドが完了したことを認識したら、手動で強制終了します。

私の質問:Maven駆動のJavaテスト環境で、特定の種類の例外に注意してプロセス全体を強制終了するようにビルドシステムに指示する方法はありますか?

我々は可能性があり、当社のコンテナをウォッチドッグとビルドプロセスそのように殺すが、私はのmavenでそれを行うためのクリーンな方法があります願っています。

マーティン・シーラー:

JUnitの代わりにTestNGを使用する場合、他のテストに依存するものとしてテストを定義する他の可能性があります。

たとえば、上記の他の方法と同様に、データベース接続を確認し、他のすべてのテストをこのメソッドに依存するものとして宣言するメソッドを使用できます。

@Test
public void serverIsReachable() {}

@Test(dependsOnMethods = { "serverIsReachable" })
public void queryTestOne() {}

これにより、serverIsReachableテストが失敗した場合、これに依存する他のすべてのテストはスキップされ、失敗としてマークされませんスキップされたメソッドは、最終レポートでそのように報告されます。スキップされたメソッドは必ずしも失敗ではないため、これは重要です。しかし、最初のテストがserverIsReachable失敗したため、ビルドは完全に失敗するはずです。プラスの効果は、他のどのテストも実行されず、非常に速く失敗することです

このロジックをグループで拡張することもできます。データベースクエリがいくつかのドメインロジックテストで使用されたとします。次のように、各データベーステストをグループで宣言できます。

@Test(groups = { "jdbc" })
public void queryTestOne() {}

ドメインロジックテストをこれらのテストに依存するものとして宣言します。

@Test(dependsOnGroups = { "jdbc.* })
public void domainTestOne() {}

したがって、TestNGはテストの実行順序を保証します。

これがテストをもう少し構造化するのに役立つことを願っています。詳細については、TestNG依存関係のドキュメントをご覧ください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

テストが失敗したらすぐにサイプレスを終了させる信頼できる方法はありますか?

分類Dev

macOSで部分的なアップグレードが失敗したときにメインディスクをマウントする方法はありますか?

分類Dev

Mavenユニットテストが失敗したときにJenkinsビルドを失敗させるにはどうすればよいですか?

分類Dev

ObjectMapperが例外をスローしたときに統合テストを失敗させる方法

分類Dev

「Windowsは指定されたデバイス、パス、またはファイルにアクセスできません」という通常のプロセスが失敗した場合、抗ウイルスソフトウェア(アバスト)をアンインストールする方法は?

分類Dev

失敗したプリペアドステートメントを完成させる必要がありますか?

分類Dev

PDO :: exec()でステートメントが失敗したときに例外をスローする方法はありますか?

分類Dev

Ubuntuは「ディスクの読み取りに失敗しました」という理由で外部RAIDのマウントに失敗します。これをどのようにトラブルシューティングする必要がありますか?

分類Dev

コマンドが失敗したときにシェルスクリプトを終了させるにはどうすればよいですか?

分類Dev

フェイルセーフをアップグレードすると統合テストは失敗しますが、intellij内で合格します

分類Dev

Laravel 5.4 - 統合テストの役割ミドルウェアが失敗する

分類Dev

単体テストが失敗した場合、Pythonのカバレッジツールを失敗させるにはどうすればよいですか?

分類Dev

テストが実行されなかった場合にJenkinsビルドを失敗させる方法は?

分類Dev

テストが実行されなかった場合にJenkinsビルドを失敗させる方法は?

分類Dev

修正方法:エラー:「<ファイル名>」にコミットがチェックアウトされていません致命的:「gitadd」を入力するとファイルの追加に失敗しました。コマンドプロンプトで

分類Dev

修正方法:エラー:「<ファイル名>」にコミットがチェックアウトされていません致命的:「gitadd」を入力するとファイルの追加に失敗しました。コマンドプロンプトで

分類Dev

Karmaがテストに失敗した場合にPowerShellが失敗するのを防ぐにはどうすればよいですか

分類Dev

SMARTテストは、以前にテストに失敗した後、セクターを再割り当てせずに失敗することなく完了しますか?

分類Dev

古いiOSシミュレーターで実行するとXcode10テストが失敗する-「テストバンドルのロードに失敗しました...適切なイメージが見つかりません」

分類Dev

マニフェストの合併に失敗しました:uses-sdk:minSDKVersion1を7より小さくすることはできません

分類Dev

それらの1つが失敗した場合、すべてのansibleロールを失敗させる方法はありますか?

分類Dev

巨大なファイルをHadoopクラスターにロードするときに、データをデータノードに転送しているときにクライアントが失敗した場合はどうなりますか?

分類Dev

「自動デバイス暗号化に失敗した理由:ハードウェアセキュリティテストインターフェイスに失敗しました」がmsinfo32.exeに表示されるのはなぜですか?

分類Dev

特定のテストが失敗した場合にスイートを救済する方法はありますか?

分類Dev

TFS2017-公開されたテストが失敗したときにビルドを失敗させる方法

分類Dev

シェルアウトされたコマンドがゼロ以外の終了コードで戻ったときにRubyスクリプトを失敗させるにはどうすればよいですか?

分類Dev

テストが失敗した場合にDockerビルドを失敗させる

分類Dev

LVをマウントできません:「mount(2)システムコールに失敗しました:構造体をクリーニングする必要があります」が、e2fsckはクリーンと言っています

分類Dev

pycharmからスクリプトを実行できますが、ターミナルからは実行できません。ImportError:DLLのロードに失敗しました:指定されたモジュールが見つかりませんでした

Related 関連記事

  1. 1

    テストが失敗したらすぐにサイプレスを終了させる信頼できる方法はありますか?

  2. 2

    macOSで部分的なアップグレードが失敗したときにメインディスクをマウントする方法はありますか?

  3. 3

    Mavenユニットテストが失敗したときにJenkinsビルドを失敗させるにはどうすればよいですか?

  4. 4

    ObjectMapperが例外をスローしたときに統合テストを失敗させる方法

  5. 5

    「Windowsは指定されたデバイス、パス、またはファイルにアクセスできません」という通常のプロセスが失敗した場合、抗ウイルスソフトウェア(アバスト)をアンインストールする方法は?

  6. 6

    失敗したプリペアドステートメントを完成させる必要がありますか?

  7. 7

    PDO :: exec()でステートメントが失敗したときに例外をスローする方法はありますか?

  8. 8

    Ubuntuは「ディスクの読み取りに失敗しました」という理由で外部RAIDのマウントに失敗します。これをどのようにトラブルシューティングする必要がありますか?

  9. 9

    コマンドが失敗したときにシェルスクリプトを終了させるにはどうすればよいですか?

  10. 10

    フェイルセーフをアップグレードすると統合テストは失敗しますが、intellij内で合格します

  11. 11

    Laravel 5.4 - 統合テストの役割ミドルウェアが失敗する

  12. 12

    単体テストが失敗した場合、Pythonのカバレッジツールを失敗させるにはどうすればよいですか?

  13. 13

    テストが実行されなかった場合にJenkinsビルドを失敗させる方法は?

  14. 14

    テストが実行されなかった場合にJenkinsビルドを失敗させる方法は?

  15. 15

    修正方法:エラー:「<ファイル名>」にコミットがチェックアウトされていません致命的:「gitadd」を入力するとファイルの追加に失敗しました。コマンドプロンプトで

  16. 16

    修正方法:エラー:「<ファイル名>」にコミットがチェックアウトされていません致命的:「gitadd」を入力するとファイルの追加に失敗しました。コマンドプロンプトで

  17. 17

    Karmaがテストに失敗した場合にPowerShellが失敗するのを防ぐにはどうすればよいですか

  18. 18

    SMARTテストは、以前にテストに失敗した後、セクターを再割り当てせずに失敗することなく完了しますか?

  19. 19

    古いiOSシミュレーターで実行するとXcode10テストが失敗する-「テストバンドルのロードに失敗しました...適切なイメージが見つかりません」

  20. 20

    マニフェストの合併に失敗しました:uses-sdk:minSDKVersion1を7より小さくすることはできません

  21. 21

    それらの1つが失敗した場合、すべてのansibleロールを失敗させる方法はありますか?

  22. 22

    巨大なファイルをHadoopクラスターにロードするときに、データをデータノードに転送しているときにクライアントが失敗した場合はどうなりますか?

  23. 23

    「自動デバイス暗号化に失敗した理由:ハードウェアセキュリティテストインターフェイスに失敗しました」がmsinfo32.exeに表示されるのはなぜですか?

  24. 24

    特定のテストが失敗した場合にスイートを救済する方法はありますか?

  25. 25

    TFS2017-公開されたテストが失敗したときにビルドを失敗させる方法

  26. 26

    シェルアウトされたコマンドがゼロ以外の終了コードで戻ったときにRubyスクリプトを失敗させるにはどうすればよいですか?

  27. 27

    テストが失敗した場合にDockerビルドを失敗させる

  28. 28

    LVをマウントできません:「mount(2)システムコールに失敗しました:構造体をクリーニングする必要があります」が、e2fsckはクリーンと言っています

  29. 29

    pycharmからスクリプトを実行できますが、ターミナルからは実行できません。ImportError:DLLのロードに失敗しました:指定されたモジュールが見つかりませんでした

ホットタグ

アーカイブ