2013-01-05 48 views
0

我該如何做下面的場景:(目的是能夠運行我擁有的所有硒腳本,或者只運行一些我想要的腳本,如果我通過測試文件作爲參數從終端用下面的代碼和腳本窗口:在紅寶石耙中運行一些腳本或所有腳本

如果測試文件在終端窗口 通過,則系統會運行下面的代碼:

scripts = ENV[scripts].plit(',') 
FileList[scripts].each { |file| 
system("ruby #{file} > #{directory_name}/#{file}.out")} 

如果測試文件不在終端窗口中通過(這意味着我要運行我的測試套件中的所有腳本),然後系統將運行以下代碼:

FileList['test*.rb'].each { |file| 
system("ruby #{file} > #{directory_name}/#{file}.out")} 

回答

2

如果我理解正確,您可以使用if語句嗎?

task :default do 
    if ENV[scripts] 
    scripts = ENV[scripts].split(',') 
    FileList[scripts].each { |file| 
    system("ruby #{file} > #{directory_name}/#{file}.out")} 
    else 
    FileList['test*.rb'].each { |file| 
    system("ruby #{file} > #{directory_name}/#{file}.out")} 
    end 
end 
+1

只要OP真的意味着使用環境變量(例如scripts = some_test; ruby​​ myscript.rb),我同意此答案。如果OP實際上想要將腳本作爲參數傳遞,他需要遍歷ARGV而不是訪問ENV [腳本]。 – nickgroenke

+0

@johnnycakes:是的,你的偉大答案正是我想要做的,非常感謝。 – battleship