Skip to content
Latchkey

Test Reportとは?

test reportは、生のテスト出力を読みやすい要約に変えます。いくつのテストが実行され、どれが失敗し、どれだけ時間がかかり、どれがflakyかを示します。

1つの失敗を見つけるために何千行ものテスト出力をスクロールするのは苦痛です。test reportは実行を構造化されたビューに集約し、シグナル - 何が壊れ、なぜか - がCIのUIですぐに見えるようにします。

良いレポートが示すもの

  • 通過/失敗/スキップの合計と全体の結果。
  • 各失敗をそのメッセージとスタックトレースとともに。
  • 遅いテストやハングしたテストを見つけるためのテストごとの所要時間。

CIによる構築方法

runnerが機械可読な結果(一般にはJUnit XML)を出力し、CIのstepがそれらをparseして、実行ページやpull requestに表示されるレポートにします - 多くの場合、失敗した正確な行にアノテーションを付けます。

小さな例

shard化された実行の後、reportingのstepが各shardのJUnit XMLをダウンロードし、1つのマージされたレポートをレンダリングします。「412通過、3失敗」となり、3つの失敗はそれぞれのスタックトレースに展開できます - ログの探索は不要です。

flakinessの可視化

実行をまたいで集約すると、レポートはflakyなテスト - コードの変更なしに通過したり失敗したりするもの - を明らかにします。合格率を時間の経過とともに追跡することで、CIへの信頼を損なう前に最悪のものを隔離または修正できます。

なぜ重要か

明確なレポートは「buildが失敗した」から「これが壊れたテストだ」までのループを短縮し、信頼できるレポートは、緑になるまで反射的に再実行するのではなく、チームが失敗に対処し続けられるようにします。

重要なポイント

  • test reportは実行を合計、失敗、所要時間に要約します。
  • CIはJUnit XMLのような機械可読な結果からそれを構築します。
  • 集約されたレポートは、時間の経過とともに遅いテストやflakyなテストを浮かび上がらせます。

関連ガイド