Jay*_*dse 6 ruby-on-rails rake-task rspec-rails ruby-on-rails-3.2 ruby-2.1
我有一个使用资产管道的Ruby 2.1/Rails 3.2应用程序.我们还使用了一个脆弱的(alpha)gem,导致"rake assets:precompile"有时失败.我想编写一个rspec测试,确保在我们提交代码之前,这个rake任务总是通过.
我在spec/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
Run Code Online (Sandbox Code Playgroud)
然后我使用命令行运行它
rspec spec/lib/assets_precompile_spec.rb
Run Code Online (Sandbox Code Playgroud)
我得到的输出看起来像这样:
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
Run Code Online (Sandbox Code Playgroud)
我看得远远,我找不到任何运行"rake assets:precompile"的例子,它实际上可以在我的RSpec环境中运行.我已经尝试显式加载spec_helper.rb文件,我已经尝试明确要求"factory_girl",但我找不到任何有用的东西.
有没有办法在RSpec测试中运行这个rake任务?
小智 2
尝试Rake::Task['assets:precompile:all'].invoke
代替Rake::Task['assets:precompile'].invoke
就我而言,它有帮助。
| 归档时间: |
|
| 查看次数: |
1736 次 |
| 最近记录: |