タイトルの並列テストってなに?
ここで指しているのは、CircleCI上で複数のコンテナを使ってテストを実行することです!2コンテナと1コンテナの時の差はこんな感じです。
下記画像の赤い部分が差異になると思います。
2コンテナでビルドを行った時の画面
1コンテナでビルドを行った時の画面
では早速、並列テストを実行するまでの手順を追っていきます。
並列テストで使うコンテナ数の設定を変更する
設定画面へ行く
Adjust Parrallelismを開く
自分のプランにあった、並列処理する際の最大コンテナ数を選ぶ
特にApplyやOKなどのボタンはありません!
ビルド設定
下記の記入例のようにparallelオプションをtrueにしてあげて、回したいスペックファイルを渡してあげればOKです。当たり前ですがfactoriesファイルなどを渡してしまうと落ちます!
circle.ymlへの記入例
test:
override:
- bundle exec rspec:
parallel: true
files:
- spec/features/*.rb
参考:Manually setting up parallelism - CircleCI
注意
当たり前ですが、specファイル間でテストデータが依存関係があるとテストが落ちます!必要があれば、上記URLに書いてある用にいい感じにバランシングのためのシェルファイルを書いてあげるとよさそうです。
速度の改善具合について
2コンテナにした場合、テストだけで約2分早くなりました!(๑´ڡ`๑)