こんにちは!kossyです!
さて、今回はRailsでテストツールにRspecを採用している際に、
ランダムに落ちるテストをseed値を指定することでもう一度再現する方法について、
ブログに残してみたいと思います。
環境
Ruby 2.6.3
Rails 6.0.3
MacOS catalina
設定
seed値を設定してRspecを実行するために、spec/spec_helper.rbを編集します。
config.order = :random # ファイルの上から順番に実行するのではなくランダムな順序で実行できるようにする Kernel.srand config.seed # seed値を指定してテストを実行できるようにする
上記の設定を行うと、
Finished in 0.32274 seconds (files took 7.83 seconds to load) 4 examples, 0 failures Randomized with seed 40251
のように、テストの実行が終了するとseed値が表示されるようになります。
$ bundle exec rspec --seed 40251
-
- seedオプションにseed値を指定することで、同条件で実行できます。
勉強になりました。