【问题标题】:Running Rake tasks in RSpec multiple times returns nil?在 RSpec 中多次运行 Rake 任务返回 nil?
【发布时间】:2015-11-29 14:33:15
【问题描述】:

我猜这与 Rake 读取文件一次而不是倒带有关?但是,我不确定。有什么想法吗?

require 'rake'
require 'rails_helper'

describe 'MyRakeTask' do

  before(:all) do
    Rails.application.load_tasks
  end

  it 'does something sweet' do
    Rake::Task["namespace:my_task"].invoke # runs task
  end

  it 'but it doesnt do it again' do
    Rake::Task["namespace:my_task"].invoke # returns nil
  end

end

【问题讨论】:

    标签: ruby-on-rails rspec rake


    【解决方案1】:

    Rake 文档说invoke 只会在“需要”时运行任务。以下内容来自另一个 SO answer,可能有助于澄清:

    • Rake::Task["build"].execute 始终执行任务,但不执行其依赖项

    • Rake::Task["build"].invoke 执行依赖项,但仅在以下情况下执行任务 它尚未被调用

    • Rake::Task["build"].reenable首先重置任务的 already_invoked 状态,然后允许任务再次执行,依赖关系和所有。

      李>

    【讨论】:

    • 谢谢!! reenable 就是这么做的。
    猜你喜欢
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    相关资源
    最近更新 更多