Skip to content

Instantly share code, notes, and snippets.

@yukikim
Created November 19, 2024 05:14
Show Gist options
  • Save yukikim/c1fdf6a400566086e25df3ceedd63512 to your computer and use it in GitHub Desktop.
Save yukikim/c1fdf6a400566086e25df3ceedd63512 to your computer and use it in GitHub Desktop.
Jest結果

Jestでテスト結果をドキュメントにする方法には、主に2つのアプローチがあります。

  1. Jestの標準の出力をファイルに保存する
  2. Jestのカバレッジレポートを生成し、HTML形式で保存する

1. Jestの標準出力をファイルに保存する方法

Jestのテスト結果をファイルに保存するためには、Jestの出力をリダイレクトしてファイルに書き込む方法があります。これを行うには、テストコマンドを実行する際に出力を指定のファイルにリダイレクトします。

例えば、次のようにコマンドを実行します。

npm test -- --verbose > jest-results.txt

これにより、テスト結果がjest-results.txtというテキストファイルに保存されます。ファイルには、Jestが通常ターミナルに出力するテストの進行状況や結果がそのまま書き込まれます。

テスト結果をJSON形式で保存

Jestは、テスト結果をJSON形式で出力することもできます。これを使うことで、テスト結果を後から解析したり、他のツールと統合したりすることができます。

npm test -- --json --outputFile=jest-results.json

これにより、テスト結果がjest-results.jsonというJSONファイルに保存されます。このファイルは、他のツール(例えば、CIツールやレポート生成ツール)で利用することができます。

2. Jestのカバレッジレポートを生成してHTMLにする

Jestでは、テストのカバレッジレポートをHTML形式で生成することができます。これを使えば、テスト結果を視覚的に確認できるドキュメントを作成できます。

コードカバレッジの生成

次のコマンドでテストのカバレッジレポートを生成できます。

npm test -- --coverage

実行後、coverageというディレクトリがプロジェクトルートに作成され、その中にindex.htmlというファイルが生成されます。このindex.htmlファイルをブラウザで開くと、カバレッジレポートが視覚的に表示されます。

詳細なカバレッジレポートの設定

もし、カバレッジレポートを詳細にカスタマイズしたい場合は、Jestの設定ファイル(jest.config.jspackage.jsonjestセクション)でカバレッジレポートの出力形式を設定できます。

例えば、jest.config.jsで次のように設定できます。

module.exports = {
  collectCoverage: true,
  coverageDirectory: 'coverage',  // 出力先ディレクトリ
  coverageReporters: ['html', 'text', 'lcov'],  // 出力形式(HTML、テキスト、LCOVなど)
};

この設定を追加すると、テスト後に以下の形式でレポートが生成されます。

  • HTML: coverage/index.htmlに出力され、ブラウザで視覚的に確認できます。
  • テキスト: ターミナルにテキストでカバレッジ結果が表示されます。
  • LCOV: coverage/lcov-report/index.htmlに、より詳細なカバレッジレポートが生成されます。

3. まとめ

  • 標準出力のリダイレクト: Jestのテスト結果をファイルに保存するには、コマンドラインで>を使って結果をファイルにリダイレクトするか、--jsonオプションを使ってJSON形式で保存します。

  • カバレッジレポートの生成: --coverageオプションを使って、テストのカバレッジレポートをHTMLなどの形式で保存し、視覚的に確認できます。

これらの方法を使うことで、Jestのテスト結果をドキュメントに保存し、後から確認したりレポートとして利用したりできます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment