phpunit/php-code-coverageって何をしてるんだ by きんじょうひでき

PHPerKaigi 2024
採択
2024/03/09 13:30〜
Track C
レギュラートーク(20分)

phpunit/php-code-coverageって何をしてるんだ

o0h_ きんじょうひでき o0h_

「PHPUnitでテストカバレッジを取ろう」とすると、phpunit/php-code-coverage というパッケージによって分析・レポート出力がなされます。
カバレッジのデータは、Xdebug(など)の拡張によって、PHPスクリプトの実行情報を取得されるものです。

一言で「テストカバレッジを取る」といっても、複数のレイヤーに登場人物がいて、それぞれの果たすべき役割が組み合わさって実現されていると言えます。

さて、実際に「それぞれで、どういうデータが出力され、どう変換されるのか」「どのような流れで、カバレッジの収集処理が起動・完了されるのか」が気になりませんか?
内部的な仕組みを知ることで、「単体テストでのテストカバレッジ計測」以外の活用方法も見いだせるかも知れません。
例えば、Xdebugの作者がYoutubeに展開している「Code Coverage for Websites」などは、興味深い例の1つでしょう。

このセッションでは、

  1. Xdebugのカバレッジ機能 & どのように実行され、どのようなデータを出力するのか
  2. php-code-coverageは、何を受け取りどんな分析をしているのか
  3. PHPUnitでの活用例、そのほかの活用例

について話をします。