t11hi

hene

RSpec で無限ループしているテストを特定する

RSpec で無限ループしているテストを特定する

CircleCi 上で、RSpec が無限ループして、 タイムアウトすることがたびたびあったのでどのテストが原因か調べました。

無限ループしている RSpec

CircleCI の実行結果です。

$ bundle exec rspec --xx

...
Randomized with seed 59270
...

特定

Randomized with seed 59270 のときに、RSpec が無限ループしている場合、 seed の値を渡すことで、無限ループしたときと同じ状態のテストを再現して実行できます。

$ bundle exec rspec --seed 59270

上記をローカル環境で実行して、どこで問題が発生しているか特定することができました。

参考