きっかけ
マイクロサービスのプロジェクトを複数触るようになって、テストカバレッジの管理が煩雑になってきた。C# の OpenCover、Java の JaCoCo、Node.js の nyc…各言語でツールが異なるから、レポートの形式もバラバラ。毎度エクセルに手作業でまとめてるような状態で、これは何とかしたいなと思ってた時に ReportGenerator を見つけた。
使ってみた
セットアップは簡単で、dotnet tool install -g ReportGenerator とコマンド一つ。その後 reportgenerator -reports:”src/**/coverage.xml” -targetdir:”./coveragereport” で実行すれば、複数プロジェクトのカバレッジデータを一気に処理してくれる。手元で試してみたら、すぐに見栄えの良い HTML レポートが生成された。ダッシュボード形式で、プロジェクト別のカバレッジ率を一覧できるのが最初の印象としては「おっ」って感じだった。
ここが良い
複数の言語・フレームワークのカバレッジを一つのレポートにまとめられるのが何より便利。OpenCover、JaCoCo、Cobertura、JUnit などを同時に取り込めるから、プロジェクト間でのカバレッジ比較も容易だ。特に嬉しかったのは、生成されたレポートが本当に見やすく、ブラウザで詳細なコード行単位のカバレッジ状況まで確認できる点。今までは各プロジェクトのレポートを個別に確認してたけど、これなら全体像を一目で把握できる。CI/CD パイプラインに組み込むのも簡単で、GitHub Actions や Azure DevOps との連携もスムーズだった。
気になった点
ドキュメントは充実してるけど、細かいカスタマイズの方法についてはまだ情報が限定的な部分がある。あと、レポート生成時の処理時間がカバレッジデータサイズに比例して増えるので、大規模プロジェクトでは若干待たされることはある。
まとめ
複数言語でテストを書いてる人、特に CI/CD で複数プロジェクトのカバレッジを一元管理したい人には本当に向いてるツール。設定も軽くて、パイプラインに組み込むハードルが低い。自分も今は毎日のビルドでカバレッジレポートが自動生成されるようにしてて、手作業がなくなったから時間が浮いた。同じ悩みを抱えてる人は一回試してみてほしい。