繁体   English   中英

Rspec测试rake任务

[英]Rspec testing rake tasks

我有一个简单的rake任务,其中包含一个puts

namespace :atask
  task something: :environment do
    puts 'Foo'
  end
end

我的规格如下

describe 'atask:something' do
  before { MyApp.Application.load_tasks }

  context 'one' do
    it do
      Rake::Task['atask:something'].invoke
    end
  end

  context 'two' do
    it do
      Rake::Task['atask:something'].invoke
    end
  end

  context 'three' do
    it do
      Rake::Task['atask:something'].invoke
    end
  end
end

如你所见,它有3个上下文,3个块。 所以我应该在控制台中看到'Foo'三次,每次调用任务一次。 但是,我只在控制台中看到“Foo”一次,即使它被调用了三次。

事实证明,当一个rake任务被invoke ,它将不再被运行。 您必须在调用后reenable该任务或使用execute

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM