每次改完spec都要在那邊bundle exec rspec spec/,
是不是很煩呢?
Guard幫我們解決了這個煩惱,它會在我們改變檔案存檔的時候幫我們去跑測試,
可以把它想成是測試版的live-reload。
第一步當然是要在Gemfile裡面加上要用到的gems:
gem 'guard'
gem 'guard-rspec'
gem 'terminal-notifier-guard'
bundle完之後執行bundle exec guard init
,
run bundle exec guard init
接下來看到Guardfile中
guard :rspec do
watch(%r{^spec/.+_spec.rb$})
watch(%r{^lib/(.+).rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
watch('spec/spec_helper.rb') { "spec" }
end
習慣上是留下這三行就好了,如果你想要更改其他地方也會繼續跑測試的話,那可以自己設定
設定完成之後只要在terminal執行bundle exec guard,就可以把測試給掛上去了
按下enter會運行所有測試,而對任何spec資料夾底下的檔案做完更動並存檔後,guard也會自動幫你跑測試,非常的好用
而guard不只能拿來運行rspec而已,其他像是minitest也可以用,
有興趣的話一樣可以去github研究一番。
參考資料:
https://github.com/guard/guard
https://github.com/guard/guard-rspec