Mam aplikację Ruby 2.1/Rails 3.2, która wykorzystuje potok zasobów. Używamy również delikatnego klejnotu (alfa), który powoduje, że "aktywa rake: prekompilacja" czasami zawodzą. Chciałbym napisać test rspec, który zapewni, że to zadanie rake'a zawsze minie zanim zatwierdzimy nasz kod.Jak przetestować zadanie rake z RSpec?
pisałem test w ciemno/asset_precompile_spec.rb który wygląda tak:
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
Potem prowadził ją w linii komend przy użyciu
rspec spec/lib/assets_precompile_spec.rb
Sygnał wyjściowy mam wyglądał następująco:
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
Szukałem daleko & szeroki, i nie mogę znaleźć żadnego przykładu, aby uruchomić „R ake assets: precompile ", który faktycznie działa w moim środowisku RSpec. Próbowałem jawnie ładowanie pliku spec_helper.rb, próbowałem jawnie wymagające "factory_girl", ale nie mogę znaleźć niczego, co działa.
Czy istnieje sposób na wykonanie testu, aby uruchomić to zadanie rake w teście RSpec?
Nie miałem problemu z użyciem podanego kodu. – hmak
Wpadłem na ten sam problem i rozwiązanie @ spr dla mnie zadziałało. – etagwerker