search
LoginSignup
4

posted at

RSpecで遅いテストをふだんskipして、たまに全部実行する方法

上のツイートを見て、どうやるのがいいか考えてみました。
以下がその方法です。

遅いテストに:slowタグを付けます(名前は:slowじゃなくても可)。

it 'めちゃくちゃ遅いやつ', :slow do
  # ...
end

.rspecファイルに以下の行を追加します。

.rspec
<%= '--tag ~slow' unless ENV['ALL_RUN'] %>

デフォルトでは:slowタグが付いているテストは実行されなくなります。

# :slowタグが付いているもの以外を実行する
$ bundle exec rspec

全テストを実行したいときは環境変数ALL_RUNを指定します(ALL_RUN以外の環境変数名でも可)。

# :slowタグが付いているものも、付いていないものもすべて実行する
$ ALL_RUN=1 bundle exec

もしくは--tag slowオプションを付けて遅いテストだけを実行することもできます。

# :slowタグが付いているものだけを実行する
$ bundle exec rspec --tag slow

同じようなことをやろうと思っている人は参考にしてみてください!

参考文献

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
4