我的Rake任務之一調用黃瓜Rake::Task[:cucumber].invoke
。在這之前,我的任務設置了一組應該由Cucumber場景使用的變量。從Rake傳遞參數到黃瓜場景
我應該怎麼做才能將Rake任務中的值傳遞給聲明中的代碼,該代碼在Cucumber Before
聲明中運行?
這裏是我在Rake文件中的代碼:
task :test, [:site] do |t, args|
args = args.with_defaults(:site => DEFAULT_SITE)
$site = args[:site]
Rake::Task[:cucumber].invoke
end
這是Before
代碼怎麼現在:
Before do
if $site.ends_with?('.html')
@engine = PageTester
else
@engine = SiteTester
end
end
此代碼是不應該做任何幻想,只是選擇基於命令行收到的內容。如何將site
參數傳遞給Before
中的代碼?
是的,我知道,但我希望有更好的方法。 Rack和Cucumber都運行在同一個VM中,共享可變空間。我想有一種通用的方式讓他們說話,不是嗎? – gioele
你的黃瓜任務究竟是如何定義的? – jodell
這只是一個簡單的'需要'黃瓜/耙/任務';黃瓜::耙:: Task.new'。 – gioele