首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MIgrations和Rspec

MIgrations和Rspec
EN

Stack Overflow用户
提问于 2010-05-24 23:29:34
回答 6查看 10.6K关注 0票数 11

我正在使用Rspec开发一个用于单元测试的Rails应用程序。

几周前,Rspec在执行'rake spec‘时会自动将数据库迁移到最新版本,但现在它不会自动执行,我必须自己实现所有的功能。

这是在测试环境中发生的,因为我的开发数据没有显示出来。

是我的错吗?我没有改变任何东西,我想:)

提前谢谢。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-06-03 13:41:49

通常,我所做的是使用一个别名命令,该命令可以同时运行迁移和准备测试数据库。

代码语言:javascript
运行
复制
rake db:migrate && rake db:test:prepare

在.bashrc中,只需像这样创建一个别名命令,然后在需要时运行migrate_databases即可。

代码语言:javascript
运行
复制
alias migrate_databases='rake db:migrate && rake db:test:prepare'
票数 22
EN

Stack Overflow用户

发布于 2014-03-11 17:14:02

我对Rails 4的解决方案是:

spec/spec_helper.rb中或测试环境初始化代码中的任何位置:

代码语言:javascript
运行
复制
# Automigrate if needs migration
if ActiveRecord::Migrator.needs_migration?
  ActiveRecord::Migrator.migrate(File.join(Rails.root, 'db/migrate'))
end

更新:正如道里安在评论中指出的那样,你不需要单独检查是否有任何未决的迁移,因为ActiveRecord::Migrator.migrate已经在幕后完成了这项工作。所以你可以有效地使用这一行:

代码语言:javascript
运行
复制
ActiveRecord::Migrator.migrate(File.join(Rails.root, 'db/migrate'))
票数 11
EN

Stack Overflow用户

发布于 2015-01-16 03:57:19

Rails 4.1向前版本,您可以使用:

代码语言:javascript
运行
复制
ActiveRecord::Migration.maintain_test_schema!

添加到你的spec_helper.rbrails_helper.rb的顶部,你就可以开始了。More info here

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2898099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档