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なテストを浮かび上がらせます。
関連ガイド
What Is a JUnit Report?A JUnit report is a standard XML format for test results that almost every CI tool understands. Learn what it…
What Is a Code Coverage Report?A code coverage report measures how much of your code the tests actually exercise. Learn how coverage is coll…
What Is a Quality Gate?A quality gate is a pass/fail condition that blocks a change from merging unless it meets defined thresholds.…