rspec-retryを使ってテストを再実行するときの設定方法

感想おまちしてます!

不安定なテストを再実行してくれるrspec-retryを試している。サンプルを見てもいまいち書き方がよくわからなかった。

スポンサーリンク

rspec-retry

Jenkins Pipelineのretryがうまく動いてくれていたので安泰かと思ったのだけれど、

Jenkinsのパイプラインで retry を使ってジョブを再実行させる
Jenkinsのパイプライン(Pilepine)をさわっていて、ジョブの再実行のあたりがモヤモヤしていたので動きを調べてみた。結論と...

これだとジョブ全体を再実行してしまうので、ジョブ内で bundle exec rspec test_spec.rb とか書いている場合、test_spec.rbの中にあるit全部が再実行されてしまう。できれば失敗したitだけ実行したいもの。

なので個別にケースをコントロールできそうなrspec-retryを使うことにした。

サンプルには、config.around :each, :js do |ex|と書けば、”# run retry only on features ”とあるのでFeaturesレベルでリトライをしてくれるそうだ。

でもって、テストケースには:retry => 3を追加している。

多分それぞれは排他的に設定できて、以下のように書けば、全 it に :retry => 3を書く必要がなくなる。

example.run_with_retryexample.runでもうまく動いたし、2回も:retry => 3を核のやだなーと思ったので使わず。

ex.metadataでそれぞれのexampleの情報を取ったり設定できるのを学んだ。