Skip to content
Latchkey

テストレポートとは?

テストレポートは、テスト実行の構造化された要約で、どのテストが合格・失敗・スキップされたか、そしてその理由を記録します。

スイートの実行後、誰か、あるいは何らかのシステムが、何が起きたかを知る必要があります。テストレポートはそれを捉えます。集計、エラーメッセージ付きの失敗、時間、スキップです。CIでは、レポートこそが生の実行をpull request上の読みやすいシグナルに変えるものです。

レポートに含まれるもの

  • 実行・合格・失敗・スキップされたテストの合計。
  • 各失敗について、アサーションとエラーメッセージ。
  • テストごとおよび合計の所要時間。
  • 多くの場合、各テストが属するスイートやファイル。

人間向けと機械向けのレポート

レポートには二つの読み手がいます。コンソール出力はターミナルを読む人間向けです。JUnit XMLやJSONのような構造化フォーマットは機械向けです。CIシステムがそれをパースして結果を表示し、傾向を追跡し、失敗した具体的なテストでpull requestに注釈を付けます。

一般的なフォーマット

JUnit XMLは、名前はframework非依存であるにもかかわらず、ほとんどのCIシステムが理解する事実上の標準です。他のフォーマットにはTAP、JSON reporter、ツール固有のHTMLレポートがあります。多くのrunnerは複数を一度に生成できます。

簡単な例

runnerは通常、構造化レポートをどこにどのフォーマットで書き出すかをCIが取り込めるよう伝えるflagを受け取ります。

Producing a structured report
pytest --junitxml=report.xml
jest --reporters=jest-junit

CIにおけるテストレポート

CIはレポートを取り込み、テストごとの内訳を表示し、しばしば失敗をpull requestに直接コメントするため、開発者は生のログを読まずに何が壊れたかを正確に見られます。レポートの生成に要する時間はごくわずかで、高速runnerが実行全体を素早く保つため、レポートが迅速に届きます。

重要なポイント

  • テストレポートは、どのテストが合格・失敗・スキップされたかを要約します。
  • JUnit XMLのような機械フォーマットにより、CIが結果を表示し追跡できます。
  • CIはレポートをpull requestに表示し、失敗を明白にします。

関連ガイド