ネットワークに到達不能なため、テストがランダムに失敗、または信用できない結果が返される

ジョブが不定期に失敗し、そのジョブが外部のサービスにリクエストを発行している場合、エラーの誤検出が非常に多くなることがあります。 一般にこのようなリクエストは、サードパーティーの API に接続してテストや依存関係のインストールを行います。 障害発生率が高くなる主な理由は 3 つです。

  1. ジョブが他のジョブと共有の環境で実行されている。
  2. インターネット接続が 100% 信頼できない。
  3. サードパーティーのサーバーが使用できなくなる可能性がある。

このような問題は通常、短時間で消滅してしまうため、どれが実際の問題であるかの判定は困難です。

常に外部のサービスと統合されるジョブは、コードが意図したように動作するという信頼性を高めてくれますが、CI の実行においてエラーの誤検出 (実際にはエラーがないものをエラーと判定する) が多くなる問題点があります。 ジョブの信頼性を高くする (外部の要因でなく、コードに問題がある場合のみ障害とする) には、ネットワークリクエストを最小化するのが唯一の方法です。 このために、可能な場合においては、レスポンスや依存関係のキャッシュに実際のものではなく、模倣したモックを使用します。 これは、ジョブが依存関係をインストールしたり、実行のたびにサードパーティーの API を使用したりするべきではないという意味ではありません。しかし、これらの動作にはトレードオフが伴うということを考慮してください。

この記事は役に立ちましたか?
1人中1人がこの記事が役に立ったと言っています

コメント

0件のコメント

ログインしてコメントを残してください。