概要
CircleCIでphpunitの並列テストを行うアプローチについてかく。
PHPUnitの設定ファイルを生成するスクリプトを用意する
こんな感じのスクリプトを用意して、設定ファイルを自動生成する。
shellscriptを書いているのはテストの実行をコンテナで行っている都合上、CIのjobでコンビニエンスイメージを使っているため、他に都合良い言語がなかった。
CircleCIでコンテナ毎にテストを振り分け並列化させる
先程用意したスクリプトをgenerate_phpunit.shとして、次のようなスクリプトで並列化の準備ができる。
後はテスト実行時に生成した設定ファイルを指定すれば、複数コンテナでテストが実行され、並列化ができる。
docker-composeでテストする場合の一例。
所感
これは実際に業務でトライしたことだったのだが、テスト間の実行順に依存関係があるらしく、並列化でのテスト実行を簡単に実現することができなかった...
まずは依存関係を何とかする必要がある...