您的位置:首页 > 运维架构 > Linux

Linux 常见的trouble shooting故障排错

2013-08-06 15:40 302 查看
初次看到Guard的解释是在Ruby on Rails Tutorial里面,当时以为是一个自动化测试工具而没有在意,考虑到自己的菜鸟等级,估计手工运行测试的机会比较多,没有考虑使用Guard。最近动手开始写一些代码了,发现每次都要切换到命令行来运行~bundle exec rspec spec/ 实在是头疼,于是又重新看了看Guard,官方网站是 https://github.com/guard/guard 发现我对Guard的理解实在是大错特错啊!!!原来Guard是用来监控文件系统内的文件变动事件,通过N多的插件来处理这些事件,看了下Guard的插件真的是很多,因为现在做rails开发,所以仅仅研究rails的部分啦,其他的插件有空再研究!

 
用Guard来自动运行Rspec测试的中心思想是使用Guard来监控app目录,config目录,spec目录下代码的变化,或者说是任何需要触发测试的目录或者文件,一旦这些被监控的文件发生变化,则自动触发相应的插件来执行一些功能。
 

首先要安装Guard以及Guard-Rspec插件,这个比较简单了,直接修改Gemfile。这里注意最后一个gem实际上是我根据运行Guard的提示添加的,如果想看到这个warning,可以先不添加最后一个gem。在添加最后一个gem的同时还有一句代码要添加到gemfile的开头 'require 'rbconfig',不过一样有提示,不用担心


 

 
然后就是熟悉的~bundle install 了。安装成功后开始初始化Guard,运行命令~bundle exec guard init rspec, 这个命令就针对rspec插件生成了一个Guardfile,这个Guardfile是用来配置Guard需要监控的文件对象了,下面看看Guardfile里面的内容

guard :rspec, all_after_pass: flase 这行说明了这是个针对rspec插件的Guardfile

watch指定了要监控的文件对象了,虽然我还弄明白第一个监控到底有啥作用,因为它撒都不触发,但是在Tutorial里面写了,就先写这里吧

watch接受正则表达式来指定一组文件来监控

如果后面接block,参数m是正则表达式匹配成功的分组数组,正则表达式分组用()表示哦~~亲不要忘记了基本知识。在block里面就拼凑出需要交给rspec插件执行的测试用例文件名吧


 

 
最后就是运行guard了 ~bundle exec guard


 

 
试着修改一下spec/models/里面的任意一个测试用例,会发现这个用例在被保存后自动由rspec执行啦!!!!!


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: