Мне трудно понять, как Rake обрабатывает задачи Cucumber.Я, вероятно, делаю это неправильно, но не вижу, что такое «правильный» путь.
У меня есть следующие задачи:
namespace :features do
Cucumber::Rake::Task.new(:browser, 'Run Cucumber Features using a Browser') do |t|
t.profile = ENV['HUDSON'] ? 'browser_hudson' : 'browser'
setup_environment
check_profile(t.profile)
end
Cucumber::Rake::Task.new(:headless, 'Run Cucumber Features using a Headless Browser') do |t|
t.profile = ENV['HUDSON'] ? 'hudson' : 'default'
setup_environment
check_profile(t.profile)
end
end
Мне кажется, это прямо вперед.
Проблема в том, что когда я запускаю любую из задач с огурцом, я вижу, как обе задачи выполняются.Поэтому, если я сделаю:
rake features:browser
или
rake features:headless
, я увижу, что setup_environment и check_profile запускаются дважды, а затем вызывается фактическая задача.В итоге я вижу что-то вроде этого:
setup_environment called
check_profile called, running in browser
setup_environment called
check_profile called, running headless
** Invoke features:browser (first_time)
** Execute features:browser
И, конечно, теперь он работает без головы.
Я предполагаю, что не следует выполнять какую-либо "работу" внутри определения задачидля задания огурца.Есть ли альтернатива, которую я должен изучить, чтобы решить эту проблему?