更好的防护(Spork/RSpec)

更好的防护(Spork/RSpec),rspec,bundle,guard,spork,Rspec,Bundle,Guard,Spork,我使用bundle exec-guard作为我的主要测试运行者,我很喜欢它,尽管我对它完全不感兴趣 困扰我的是,我必须手动“r”来重新启动它,以便进行任何真正的代码更改。我可以接受缓慢的重新加载时间(虽然如果它能像rails c的重新加载那样做会更好),但我不能忍受的是必须手动切换到窗口并点击r。尤其是当我忘了做这件事,觉得一切都很好的时候。因此,除了效率低下之外,还有不一致性 这是我的警卫文件: 守卫'spork',等待:45 do 观看“config/application.rb” 观看“c

我使用
bundle exec-guard
作为我的主要测试运行者,我很喜欢它,尽管我对它完全不感兴趣

困扰我的是,我必须手动“r”来重新启动它,以便进行任何真正的代码更改。我可以接受缓慢的重新加载时间(虽然如果它能像rails c的重新加载那样做会更好),但我不能忍受的是必须手动切换到窗口并点击
r
。尤其是当我忘了做这件事,觉得一切都很好的时候。因此,除了效率低下之外,还有不一致性

这是我的警卫文件:

守卫'spork',等待:45 do
观看“config/application.rb”
观看“config/environment.rb”
监视%r{^config/environments/+\.rb$}
监视%r{^config/initializers/+\.rb$}
观看“Gemfile”
观看“Gemfile.lock”
观察'spec/spec\u helper.rb'完成'spec'结束
结束
防护装置“rspec”,版本:2 do
监视%r{^spec/+\u spec\.rb$}
观看%r{^lib/(.+)\.rb$}do|m|“spec/lib/{m[1]}u spec.rb”结束
监视%r{^spec/+\u spec\.rb$}
观看%r{^app/(.+)\.rb$}do|m|“spec/#{m[1]}u spec.rb”结束
观看%r{^app/(.*)(\.erb\.haml)$}do|m|“spec/{m[1]}{m[2]}{u spec.rb”结束
观看%r{^lib/(.+)\.rb$}do|m|“spec/lib/{m[1]}u spec.rb”结束
观看%r{^app/controllers/(.+){uu(controllers)\.rb$}do|m|[“规范/路由/{m[1]}规范.rb”,“规范/{m[2]}s/{m[1]}{m[2]}规范.rb”,“规范/验收/{m[1]}规范.rb结束
监视%r{^spec/support/(.+)\.rb$}执行“spec”结束
观看“spec/spec\u helper.rb”完成“spec”结束
观察“config/routes.rb”do“spec/routing”结束
观看“应用程序/控制器/应用程序/控制器.rb”do“规格/控制器”结束
#水豚请求规范
观看%r{^app/views/(.+)/.\.(erb | haml)$}do | m |“spec/views/**/#{m[1]}u spec.rb”结束
监视%r{^app/*\.sass$}do'spec/requests/*'结束
结束
我想做一些事情,比如:

watch%r{^app/models/*.rb}do system`killall bundle`end
…
但这显然是一个巨大的难题。但总比看着fakely通过测试要好

感谢您提供有关如何改进此设置的建议。

这是我的“第一天”编辑(也就是说,上面的编辑是我在摸索中尝试的) 尽可能少地学习,但这一点 更知情)。这个对我来说更有效

通知:打开
守卫'spork',等待:45,rspec_env:{'RAILS_env'=>'test'}do
[
%r{^config/(环境|初始值设定项)/.+\.rb$},
%r{^config/(应用程序|环境|路由)\.rb$},
%r{Gemfile(.lock)?},
%r{^lib/},
%r{app/(模型|控制器)},
“spec/spec\u helper.rb”
].每个人都要看电视
结束
防护装置“rspec”,版本:2 do
监视%r{^spec/+\u spec\.rb$}
观看%r{^app/(.+)\.rb$}do|m|“spec/#{m[1]}u spec.rb”结束
观看%r{^lib/(.+)\.rb$}do|m|“spec/lib/{m[1]}u spec.rb”结束
观看%r{^app/(.*)(\.erb\.haml)$}do|m|“spec/{m[1]}{m[2]}{u spec.rb”结束
观看%r{^app/views/(.+)/.\.(erb | haml)$}do | m |“spec/views/**/#{m[1]}u spec.rb”结束
监视%r{^app/*\.sass$}do'spec/requests/*'结束
结束
工作正常。我打赌还会有更多的改进。
—☈

啊哈,这条路很简单。你需要做的就是在
guard'spork'
部分添加更多的
watch
行。里面的任何东西都会重新启动整个过程。