読者です 読者をやめる 読者になる 読者になる

気の向くままに書き綴る

勉強会参加したメモや日々の思ったことのメモ等

How to speed up rspec

Guardとspringを使ってrspecのスピードアップ

rails tutorialの第3章にある「sporkを使ったテストの高速化」について、Rails 4.2だと、どうするといいか考えてみた。

Rails 4.2のDefault の Gemfileにはspringが入っている。

そこで今回sporkではなくspringを利用した際の設定メモを書く。

railstutorial.jp

The Rails 4.2 Default Files - RichOnRails.com 

今の状態

$ bundle exec rspec

.........

 

Finished in 0.37447 seconds (files took 4.38 seconds to load)

9 examples, 0 failures

まだ3章しか進んで無いのに既に load が4.38s だと。。? 

set Gemfile

Gemfileに以下を追加

group :development, :test do

  gem 'spring'

+  gem 'spring-commands-rspec'

end

 install

$ bundle install 

これで、rspecを叩く際にspringが利用できるのと、backgroundでrailsが起動している。

$ bundle exec spring rspec

.........

 

Finished in 0.51876 seconds (files took 0.87214 seconds to load)

9 examples, 0 failures

$ ps -ef | grep spring | grep -ve grep

  501 32265 32264   0  5:53PM ??         0:13.46 spring app    | rails-tutorial | started 38 mins ago | test mode    

  501 32264     1   0  5:53PM ttys001    0:00.88 spring server | rails-tutorial | started 38 mins ago

loadが0.8sと早くなった。

modify Guardfile

Guardと組みあせて行う。まずは以下Gemfileに追加する。

group :development, :test do

+  gem 'guard-rspec'

end

 

 install

$ bundle instlal

 guard init

$ bundle exec guard init

Guardfileが作られる

springで実行されるようにGuardfileを編集する

$ vim Guardfile

-  guard :rspec, cmd: "bundle exec rspec" do

+ guard :rspec, cmd: "bundle exec spring rspec" do

  

$ bundle exec guard

17:52:51 - INFO - Guard::RSpec is running

17:52:51 - INFO - Guard is now watching at '/Users/cs006061/Project/rails-tutorial'

17:53:08 - INFO - Running: spec/requests/static_pages_spec.rb

.........

 

Finished in 0.45334 seconds (files took 0.65175 seconds to load)

9 examples, 0 failures

広告を非表示にする