我有一个脚本来运行目录中的所有测试,使用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
IE。测试仅针对最后一个选项运行 (d)
如果我使用“系统”,每个文件都单独运行 - 这使得很难通过几次不同运行的 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