이 테스트 스택은 신뢰할 수 없게 작동합니다. 때로는 가드를 실행하면 guard-rspec gem을 사용하여 적절히 수행하고 변경된 파일 만 실행합니다. 적어도 테스트가 실패하면 단일 수정 된 파일로 중단됩니다.Guard가 모든 변경 사항에 대해 모든 RSpec 사양을 실행하는 이유는 무엇입니까?
하지만 테스트에 통과하면 모든 베팅이 해제됩니다. 그것은 계속 실행됩니다 모두 하나의 파일이 변경되면 테스트합니다. 크기가 큰 응용 프로그램에서는 파일을 저장할 때마다 모든 테스트가 실행되는 것을 볼 때 매우 실용적이며 실망 스럽습니다.
My Guardfile은 다음과 같습니다. RSpec 스펙을 가리키는 곳을 변경해야한다는 것을 주목하십시오. 기본적으로 사용자는 specs
디렉토리를 가지며 모든 사양이 모두 하나의 디렉토리로 뒤죽박죽이 될 것이라고 생각합니다. 나는 그런 테스트를하는 사람을 모릅니다. 따라서 포함시킬 재미없는 기본 설정입니다. specs
아래의 하위 디렉토리를 찾아야합니다.
# A sample Guardfile
# More info at https://github.com/guard/guard#readme
guard 'spork', :cucumber => false, :rspec_env => { 'RAILS_ENV' => 'test' } do
watch('config/application.rb')
watch('config/environment.rb')
watch('config/environments/test.rb')
watch(%r{^config/initializers/.+\.rb$})
watch('Gemfile')
watch('Gemfile.lock')
watch('spec/spec_helper.rb') { :rspec }
end
guard 'rspec', :version => 2, :cli => "--drb" do
watch(%r{^spec/(.*)/(.+)_spec\.rb$})
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
watch('spec/spec_helper.rb') { "spec" }
# Rails examples
watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
watch(%r{^app/(.*)(\.erb|\.haml)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
watch('config/routes.rb') { "spec/routing" }
watch('app/controllers/application_controller.rb') { "spec/controllers" }
# Capybara features specs
watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/features/#{m[1]}_spec.rb" }
watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" }
# Turnip features and steps
watch(%r{^spec/acceptance/(.+)\.feature$})
watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' }
end
나는 알고있다, 나는 그 세트가 있고 아직도 작동하지 않는다. : all_on_start => false, : all_after_pass => false, : version => 2, : cli => "--drb"do '''. – AKWF
이상합니다. 보석 코드는 매우 간단하며 run_all 호출은 해당 매개 변수에 명확하게 종속되어 있습니다. 98 번 줄을 https://github.com/guard/guard-rspec/blob/master/lib/guard/rspec.rb에서 확인하십시오. Guardfile이 있다고 생각하십니까? –
여기에 나와 있듯이, 'cucumber'가 있습니다 : cli => "--verbose --color --drb --format 'pretty'", : all_on_start => false, : all_after_pass => false do 및 guard 'rspec' , : version => 2, : all_on_start => false, : all_after_pass => false, : cli => '--drb --color'do 그래도 모든 테스트는 실패 후에 실행됩니다. – user1687078