我有一個使用資產管道的Ruby 2.1/Rails 3.2應用程序。我們也在使用導致「rake資產:預編譯」的脆弱(alpha)gem有時會失敗。我想寫一個rspec測試,確保在我們提交代碼之前,這個rake任務總是通過。如何使用RSpec測試rake任務?
我寫規範/測試asset_precompile_spec.rb它看起來像這樣:
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
我然後跑它使用
rspec spec/lib/assets_precompile_spec.rb
我得到了這個樣子輸出在命令行:
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
我已經遠遠地望着&寬,我無法找到任何例如運行「R ake資產:預編譯「,這實際上在我的RSpec環境中起作用。我已經嘗試明確加載spec_helper.rb文件,我已經明確要求「factory_girl」,但我找不到任何可用的工具。
有沒有辦法讓測試在RSpec測試中運行這個rake任務?
我沒有使用您提供的代碼的問題。 – hmak
我遇到了同樣的問題,@ spr的解決方案爲我工作。 – etagwerker