我有一个简单的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”一次,即使它被调用了三次。
答案 0 :(得分:4)
事实证明,当佣金任务invoke
时,它将不会再次运行。调用后您必须reenable
任务或使用execute