在RSpec中两次调用相同的rake任务

use*_*354 12 ruby rspec

我试图用rspec测试一个rake任务,为此我需要调用它两次,但它只被调用一次.

it 'first test' do
    Rake::Task['my_rake_task'].invoke
    # rake task was processed
end

it 'second test' do
    Rake::Task['my_rake_task'].invoke
    # rake task was NOT processed
end
Run Code Online (Sandbox Code Playgroud)

Guy*_*gev 28

如果一个rake任务已被调用,一旦它不会再次运行,除非你调用:

@rake[@task_name].reenable

或者用它来调用它

@rake[@task_name].execute