ruby-on-rails-3 - 如何在 rspec 中调用 rake 任务

标签 ruby-on-rails-3 rspec rake rspec-rails

我试图在我的 rspec 中调用一个 rake 任务。

  require "rake"
  rake = Rake::Application.new
  Rake.application = rake
  rake.init
  rake.load_rakefile
  rake['rake my:task'].invoke

但我收到错误
 Failure/Error: rake['rake db:migrate'].invoke
 RuntimeError:
   Don't know how to build task 'rake db:migrate'

有谁知道我们如何在 rspec 代码中调用 rake 任务。

任何帮助将不胜感激。

最佳答案

将方括号中的参数传递给 invoke :

rake sim:manual_review_referral_program[3,4]

变成:
rake['sim:manual_review_referral_program'].invoke(3,4)

如果您的 args在数组中,您可以执行以下操作:
args = [3,4]
rake['sim:manual_review_referral_program'].invoke(*args)

此 StackOverflow 问题的更多信息:How to run Rake tasks from within Rake tasks? .

关于ruby-on-rails-3 - 如何在 rspec 中调用 rake 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13704976/

相关文章:

api - 设计 sign_in 方法在 RSpec 测试中抛出 NoMethodError

ruby-on-rails - 如何在 rails 中处理 redis pub/sub

ruby-on-rails - 无法激活 Rake (> 0.0.0)?

ruby-on-rails - 将 CouchDB 作为 Rails 应用程序的一部分分发?

ruby-on-rails-3 - Rails 3 after_save 旧值

ruby-on-rails - 在 Rails 中使用 Ajax 更新 Div 而无需重新加载页面

ruby-on-rails - 一个引擎的*所有*规范是否预期存在于虚拟 Rails 应用程序中?

ruby - 如何在具有通配符的 RSpec 中请求(GET/POST)路由

mysql - Ruby on Rails 中跨 4 个模型的关系

ruby-on-rails - Rails - 在提交按钮上覆盖模型名称