当前位置:  开发笔记 > 编程语言 > 正文

如何使用RSpec测试rake任务?

如何解决《如何使用RSpec测试rake任务?》经验,为你挑选了0个好方法。

我有一个使用资产管道的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

然后我使用命令行运行它

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 # with backtrace:
         # ./spec/lib/assets_precompile_spec.rb:7:in `block (3 levels) in '
         # ./spec/lib/assets_precompile_spec.rb:7:in `block (2 levels) in '
     # ./spec/lib/assets_precompile_spec.rb:7:in `block (2 levels) in '

Finished in 0.71247 seconds
1 example, 1 failure

Failed examples:

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

我看得远远,我找不到任何运行"rake assets:precompile"的例子,它实际上可以在我的RSpec环境中运行.我已经尝试显式加载spec_helper.rb文件,我已经尝试明确要求"factory_girl",但我找不到任何有用的东西.

有没有办法在RSpec测试中运行这个rake任务?

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有