6

Varlık boru hattını kullanan bir Ruby 2.1/Rails 3.2 uygulamasına sahibim. Aynı zamanda "komisyon varlıkları: precompile" 'ı zaman zaman başarısızlığa uğratan kırılgan (alfa) bir gem kullanıyoruz. Kodumuzu gerçekleştirmeden önce bu komisyon görevinin her zaman geçmesini sağlayan bir rspec testi yazmak istiyorum. RSpec ile bir komisyon görevi nasıl test edilir?

ben şöyle bir spec testi/asset_precompile_spec.rb yazdı:

Sonra

rspec spec/lib/assets_precompile_spec.rb 

böyle görünüyordu var çıkışı kullanarak komut satırında koştum

require 'spec_helper' 
require 'rake' 

describe 'assets:precompile' do 
    before { MyApp::Application.load_tasks } 
    it { expect { Rake::Task['assets:precompile'].invoke }.not_to raise_exception } 
end 

:

1) assets:precompile 
    Failure/Error: it { expect { Rake::Task['assets:precompile'].invoke }.not_to raise_exception } 
     expected no Exception, got #<RuntimeError: Command failed with status (1): [/home/railsdev/.rvm/rubies/ruby-2.1.2/bin/...]> with backtrace: 
     # ./spec/lib/assets_precompile_spec.rb:7:in `block (3 levels) in <top (required)>' 
     # ./spec/lib/assets_precompile_spec.rb:7:in `block (2 levels) in <top (required)>' 
    # ./spec/lib/assets_precompile_spec.rb:7:in `block (2 levels) in <top (required)>' 

Finished in 0.71247 seconds 
1 example, 1 failure 

Failed examples: 

rspec ./spec/lib/assets_precompile_spec.rb:7 # assets:precompile 

ben çok & geniş baktım, ben de "r çalıştırmak için herhangi bir örnek bulamıyorum ake varlıkları: RSpec ortamımda gerçekten çalışmakta olan precompile. Ben açıkça spec_helper.rb dosyasını yüklemeyi denedim, açıkça "factory_girl" gerektiren denedim, ancak çalışan bir şey bulamıyorum.

Bu sorgulama görevini bir RSpec testinde çalıştırmak için bir test yapmak için bir yol var mı?

+0

Sağladığınız kodu kullanarak hiçbir sorun yaşamadım. – hmak

+0

Aynı konuyla karşılaştım ve @ spr'nin çözümü benim için çalıştı. – etagwerker

cevap

2

taslağın yardımcı Benim durumumda

yerine Rake::Task['assets:precompile'].invoke

Rake::Task['assets:precompile:all'].invoke deneyin.

+0

Paylaştığınız için teşekkür ederiz! Bu benim için çalıştı. – etagwerker

İlgili konular