笔者以为rails工程 生成批量进行测试的shell脚本为例,与大家一起探讨一下。
为了能够更加快速的运行所有的测试脚本,笔者采用的方法是编写一个shell,里面写满了:
ruby test/functional/user.rb
...
之类的语句。
这样,每次运行测试的之后,只需要运行这个shell即可。
(应该还有更加简单的方法,只是没有发现,希望有知道的朋友,告知一二 : oushunbao@gmail.com. 后来发现了一个命令: rake test正好可以解决测试的问题。)
进而发现,如果有测试脚本增加,那么有将要在shell脚本中自行添加。于是乎,笔者就在想,如果可以自动生成这个脚本,岂不更好?接着,就写了下面的代码。
大致思路就是,遍历指定目录以及子目录下的所有 *.rb的文件,并且组合成 ruby ..../filename.rb的形式。然后输出。
# create runtest.rb for rails.
# e.g. :(the name of this file is createruntest.rb)
# #>ruby createruntest.rb ./test > runtest.sh
# #>chmod 777 runtest.sh
#
def getfiles(path)
re = []
allre = []
Dir.foreach(path) do |f|
allre << f
end
allre.each do |f|
fullfilename = path + "/" + f
if f == "." or f == ".."
elsif File.directory?(fullfilename)
resub = []
resub = getfiles(fullfilename)
if resub.length > 0
ref = {}
ref[f] = resub
re << ref
end
elsif File.exist?(fullfilename) and (f =~ /\.rb$/) # only rb file
re << f
end
end
return re
end
def print_arr(arr,root)
sre = ""
arr.each {|value|
if value.class == Hash
value.each do |k,v|
#re += "#{k} => { #{print_arr(v)} }"
sre += print_arr(v,root+"/"+k)
end
else
#re += value
sre += "ruby #{root}/#{value} \n"
end
#re += ","
}
return sre
end
root = ARGV[0] || Dir.pwd
arr = getfiles(root)
puts print_arr(arr,root)
将以上代码保存到文件中(假设文件名为create_runtest.rb),并且将文件放置在rails的根路径下。
然后运行
#> ruby create_runtest ./test > runtest.sh
在设置权限
#> chmod 777 runtest.sh
ok
下次使用的时候,直接在rails根路径下运行 ./runtest.sh 就好了
(centos5 + ruby 1.8.6 + rails 1.2.3)
本文的中对目录中文件的解读采用了递归的方式进行,这样思路应该会更加清晰一下。
分享到:
相关推荐
在ruby中我们要实现遍历指定目录的方法,网上的方法也非常之多,我们可以拿来参考参考,如下边的traverse.rb文件内容所示: 代码如下: #!/usr/bin/ruby def traverse(filepath) if File.directory?(filepath) ...
ruby脚本交互.rar
ruby脚本编辑器.rar
ngx_ruby 是嵌入 ruby 脚本的 Nginx 模块
Ruby脚本语言经典教程
这是一个把ruby脚本代码转化为exe可执行文件转化后文件有点大。ruby2.0有望改进这方面的支持
易语言ruby脚本交互源码,ruby脚本交互,信息框_,加载内存DLL,释放内存DLL,取DLL导出函数地址,GetIntegerAddress,GetArrayDataAddress,脚本_直接执行,脚本_定义模块,脚本_初始化,脚本_定义类,脚本_定义类方法,脚本_...
搭建redis集群,使用ruby脚本搭建集群。 redis-3.0.0.gem
ruby脚本,用来分析case覆盖率,文件名,文件个数等等
易语言ruby脚本编辑器易语言源码.rar 易语言ruby脚本编辑器易语言源码.rar 易语言ruby脚本编辑器易语言源码.rar 易语言ruby脚本编辑器易语言源码.rar 易语言ruby脚本编辑器易语言源码.rar 易语言ruby脚本编辑器...
测试用 建立组织机构Ruby脚本 脚本基于GEPS接口,采用Ruby脚本编写;
Ruby是一种功能强大的面向对象的脚本语言,可以使用它方便快捷地进行面向对象程序设计。与Perl类似,而且Ruby具有强大的文本处理功能,使文本处理变得简单。此外还可以方便地使用C语言来扩展Ruby的功能。
这是一个将ruby脚本转换成二进制可执行文件的工具,使用简单方便,功能强大,解压编译后生成rubyc可执行程序!转换ruby脚本时 使用rubyc 脚本.rb即可,可以自动检测依赖关系!使用非常方便!
jira-omnifocus, 创建和管理OmniFocus任务的ruby 脚本在你的Jira脚本上 创建和管理基于你的JIRA票证的OmniFocus任务的ruby 脚本...
易语言源码易语言ruby脚本交互源码.rar
Ruby脚本hackery手动修复损坏的hbase_Ruby_下载.zip
易语言源码ruby脚本编辑器易语言源码.rar
Ruby-LXC是liblxc的一个Ruby绑定,它能够让你利用Ruby脚本创建和管理Linux容器
ruby 文件夹遍历的四种方法。