2014-09-22 48 views
0

使用警衛架重新加載應用程序。它正確地重新加載應用程序,但如何在重新加載後運行規格?如何在使用Guard重新加載Sinatra應用程序後運行規格?

guard :rack do 
    watch('Gemfile.lock') 
    watch(%r{^app/(.+)\.rb$}) 

    callback(:reload) { `rspec spec` } 
end 

回調應該在應用程序更新後運行規格,但似乎沒有發生。

配置:

Capybara.configure do |config| 
    config.run_server = false 
    config.default_driver = :poltergeist 
    config.app_host = 'http://localhost:9292' 
end 

而且使用護RSpec的:

guard :rspec, cmd: 'rspec spec' do 
    watch(%r{^spec/(.+)\.rb$}) { 'spec' } 
end 

參考:Guard Docs

回答

1

我們使用gaurd-rspec在工作,這是偉大的。配置如此簡單:

guard :rspec, cmd: '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 
+0

其實我用的護RSpec的爲好。但是我在RSpec之外運行Sinatra。 – 2014-09-22 21:53:38

2

感謝安東尼,我想通了。 RSpec的後衛有來找機架後衛:

guard :rack do 
    watch('Gemfile.lock') 
    watch(%r{^app/(.+)\.rb$}) 
end 

guard :rspec, cmd: 'rspec spec' do 
    watch(%r{^app/(.+)\.rb$}) { 'spec' } 
    watch(%r{^spec/(.+)\.rb$}) { 'spec' } 
end 
+0

我的榮幸,很高興它的工作! – Anthony 2014-09-22 23:29:36

相關問題