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
d 时,它不会再 运行 了。您必须在调用后 reenable
任务或使用 execute
我有一个简单的 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
d 时,它不会再 运行 了。您必须在调用后 reenable
任务或使用 execute