2014-09-22 1 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 외부에서 Sinatra를 실행 중입니다. –

2

앤서니에게 감사드립니다. RSpec에 가드 랙 가드 들어오는있다 : 사실 나뿐만 아니라 가드 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

관련 문제