rspec2 – Rails 3.1 RC5使用Spork进行可安装的发动机测试
我已经能够使用RSpec,Cucumber和Autotest来对抗我的Rails 3.1可安装引擎.事情陷入困境的是试图将Spork融入其中. Spork运行正常,我的测试使用Spork,但我遇到的问题是Spork不会重新加载模型,除非我关闭Spork服务器并不是非常有效.我也在使用factory_girl.我用
Spork.trap_method尝试了各种各样的东西,但没有任何效果.
这是我正在使用的宝石(虽然我已经在我的项目中抛弃了Spork,因为它引起了我的悲痛): > rails(3.1.0.rc5) 谢谢, -Damien 解决方法
我想出了我的问题.它实际上是自动测试,而不是Spork.我已经从可安装的引擎转移到标准引擎(插件),因为它最终更适合我需要的东西.
我现在正在使用Rails 3.1的发布版本. 在这种情况下,我认为事情会更容易,但我遇到了同样的问题.无论如何,这最终成为测试非命名空间引擎(可安装)的修复程序,虽然有一些路径调整,但我相信它会起作用. 使用以下内容将.autotest文件添加到项目的根目录: Autotest.add_hook :initialize do |at| at.add_mapping %r%^app/models/(.*).rb$% do |_,m| "spec/models/#{m[1]}_spec.rb" end at.add_mapping %r%^app/controllers/(.*).rb$% do |_,m| ["spec/controllers/#{m[1]}_spec.rb","spec/functional/#{m[1]}_spec.rb"] end at.add_mapping %r%^app/helpers/(.*)_helper.rb% do |_,m| ["spec/views/#{m[1]}_view_spec.rb","spec/functional/#{m[1]}_controller_spec.rb"] end at.add_mapping %r%^app/views/(.*)/% do |_,"spec/functional/#{m[1]}_controller_spec.rb"] end end 当我在另一个问题上遇到这个答案时,我提出了解决方案:how to tell autotest to correctly track changes in app source?,以及在网络上找到的其他示例. 希望这有助于其他人. [编辑2011-09-20] ENGINE_ROOT=File.join(File.dirname(__FILE__),'../../') # Couldn't get spork to reload models,hence the reason for this hack Dir[File.join(ENGINE_ROOT,"app/models/*.rb")].each {|f| load f } # or controllers... Dir[File.join(ENGINE_ROOT,"app/controllers/*.rb")].each {|f| load f } 似乎应该有更好的方法…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |