gpt4 book ai didi

ruby-on-rails - 如何使用 RSpec 测试 rake 任务?

转载 作者:行者123 更新时间:2023-12-04 05:49:42 25 4
gpt4 key购买 nike

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

我已经看了很远很远,我找不到任何运行“rake assets:precompile”的例子,它实际上在我的 RSpec 环境中工作。我试过显式加载 spec_helper.rb 文件,我试过明确要求“factory_girl”,但我找不到任何有效的东西。

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

最佳答案

试试 Rake::Task['assets:precompile:all'].invoke
而不是 Rake::Task['assets:precompile'].invoke
就我而言,它有所帮助。

关于ruby-on-rails - 如何使用 RSpec 测试 rake 任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24768225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com