「うわっ…うちのテスト、遅すぎ…?」PHPUnit高速化テクニック by 篠田 北斗

PHPerKaigi 2024
レギュラートーク(20分)

「うわっ…うちのテスト、遅すぎ…?」PHPUnit高速化テクニック

pinkumohikan 篠田 北斗 pinkumohikan
6

「テストがないコードはレガシーコードだ!」
Webアプリ開発において、PHPUnitなどでテストコードが書かれることは一般的になりました。

ですが、テスト完走までにかかる時間は適切でしょうか?
テストにかかる時間は生産性に直接的な影響を及ぼす重要な要素です。早ければ早いほど良い。
本トークでは、PHPUnitで書かれているテストを高速化するテクニックについてお話します。

対象観客

  • 開発生産性を上げたいと思われている方
  • テストの実行時間が長くてキレそうな方

お話すること

  • 「phpunit-speedtrap」プラグインを使って遅いテストを検出する
  • Googleが提唱する「Test Sizes」を取り入れて、テスト対象をCIとローカルで変えるテスト戦略
  • makeやparatestを使ったテスト実行の並列化
  • (Laravelの場合) DatabaseMigrations Traitは遅いので出来るだけ使わないほうが良い
  • テスト時でもOPcacheは効くのか