コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

RailsでRSpecの実行時引数を.rspecに書いてRSpecの実行を便利にする

require忘れて時間を取られるみたいなことが多々あるので、.rspecを活用するときのメモ

環境

$ bundle exec rspec -v
RSpec 3.8
  - rspec-core 3.8.0
  - rspec-expectations 3.8.2
  - rspec-mocks 3.8.0
  - rspec-rails 3.8.1
  - rspec-support 3.8.0

使い方

設置

rails g rspec:install

上記コマンドで自動的につくられる、以下生成例

$ bin/rails g rspec:install
      create  .rspec
      create  spec
      create  spec/spec_helper.rb
      create  spec/rails_helper.rb

中身としては以下がデフォルト

--require spec_helper

カスタマイズ方法

--require

--require {{ファイル名}} でspecファイルを実行する前に記述されたファイルをincludeする。

デフォルトでは spec_helper が書かれているが、これを rails_helper とすれば rails_helper.rb が呼ばれる。

--order

テストの実行順番を変えます。

--order [defined]

のように記述します。

[defined] がデフォルトで、毎回同じ順番で実行し、 [random] と記述するとテストの順番を入れ替えます。DBの値などが気付かぬうちに順番に影響されて失敗/成功することもあり得るのでそれらを切り分けるためにもランダム実行にしておくと良いです。

また [random:{{SEED値}}] と記述すると rand のseed値を固定にできるので、特定のrandの値で失敗するときなどはこのオプションをつけて手動実行することができます

参考リンク