我有一個腳本來運行require
;我做的:在循環中調用`require`只執行一次
Dir.files.each
...
然後
require 'path'
...
我嘗試用另一個循環運行這些測試了幾次,傳遞不同的參數。我在數組中有自己的參數,然後遍歷數組,然後運行與上面相同的代碼以在目錄中運行所有測試。在這個循環中,我打印一行:
puts executing tests for a[i]
和下一行是運行一組測試的require
。 問題在於打印執行例如十次(一起打印十行),但require
只在最後運行,只傳遞數組的最後一個元素。我嘗試了不同的陳述,他們都運行良好,所以我不相信這是循環中的問題;我認爲這是require
。我試過load
,但沒有看到任何區別。 'exec'只運行集合中的第一個測試。有任何想法嗎?
一些更多細節:
感謝您的回覆!系統命令更接近我想要的 - 它爲我運行所有測試。
我下面有一個我想要做的例子。 當我運行腳本一次傳遞特定參數「A」,我得到如下結果:
#### Run all tests for 'a' ####
Loaded suite
............................
Finished in 220.123 seconds
如果我把我的論點在一個陣列上,比如。 AR = [ 'A', 'B', 'C', 'd'] 我得到
#### Run all tests for 'a' ####
#### Run all tests for 'b' ####
#### Run all tests for 'c' ####
#### Run all tests for 'd' ####
Loaded suite
............................
Finished in 220.123 seconds
即(d)
如果我使用'system',每個單獨的文件都會單獨運行 - 這使得很難通過100次測試的結果來檢查幾次不同的運行。
的代碼片段是:
for i in 0 .. @ar.length-1 do
puts'## Running : '+ @ar[i] + ' ##'
Dir.entries('./suite_dir').each do | file |
require './suite_dir/'+ file
end
end
你能澄清你的程序在做什麼?也許寫一個具有相同(不希望的)行爲的簡短示例? – Zach