Posted at

CircleCIで並列テストを実行する

More than 3 years have passed since last update.


タイトルの並列テストってなに?

ここで指しているのは、CircleCI上で複数のコンテナを使ってテストを実行することです!2コンテナと1コンテナの時の差はこんな感じです。

下記画像の赤い部分が差異になると思います。


2コンテナでビルドを行った時の画面

parallele_02.png


1コンテナでビルドを行った時の画面

parallele_01.png

では早速、並列テストを実行するまでの手順を追っていきます。


並列テストで使うコンテナ数の設定を変更する


設定画面へ行く

settings_01.png


Adjust Parrallelismを開く

settings_02.png


自分のプランにあった、並列処理する際の最大コンテナ数を選ぶ

特にApplyやOKなどのボタンはありません!

settings_03.png


ビルド設定

下記の記入例のように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分早くなりました!(๑´ڡ`๑)