【发布时间】:2026-02-19 06:10:01
【问题描述】:
我开始制作 Rails 3.1 引擎,但我很难使用 rspec 对其进行测试。
首先,如果我运行rails g integration_test whatever,它会在测试/集成而不是规范/请求中创建一个常规集成测试(rspec-rails gem 已安装,并且需要作为 gemspec 文件中的开发依赖项)
另外,当我运行规范测试时,我收到一条错误消息,指出与我正在测试的模型对应的表尚未创建。我尝试了rake engine_name:install:migrations 并从虚拟应用程序内部运行rake db:migrate,我收到“表已存在”错误。
一切似乎都断开了,我觉得我在这里遗漏了一些东西,以使 rspec gem 无缝工作,就像它通常与完整的 rails 应用程序一样。
我从这里http://rubyx.com/2011/03/01/start-your-engines 开始跟踪所有更改,我可以通过控制台启动虚拟应用程序来手动测试引擎,如下所示http://railscasts.com/episodes/277-mountable-engines。
有没有办法让 rspec 成为测试 rails 3.1 引擎的默认值?
【问题讨论】:
-
在 Rails 3.2 中已经解决了一些问题,但我总是忘记如何迁移测试数据库。要在测试数据库上运行迁移,请在 gem 的目录中运行
rake app:db:test:prepare。 -
我刚刚实现了本文的方法,没有任何问题。 viget.com/extend/…
标签: ruby-on-rails rspec ruby-on-rails-3.1 rspec-rails rails-engines