[RoR] Rails unittest一个小bug

本文介绍了在Ruby on Rails项目中遇到的单元测试错误及其解决方法。作者分享了如何配置数据库来避免测试时出现问题,并提到了config.active_record.schema_format配置项的重要性。
之前为了省事,数据库配置如下:

development_pgsql:
  adapter
: postgresql
  database
: myproject_development
  username
: postgres
  password
: 

development_mysql
:
  adapter
: mysql
  database
: myproject_development
  username
: root
  password
: 

development
:
  development_mysql

test
:
  adapter
: postgresql
  database
: myproject_test
  username
: postgres
  password
: 

production
:
  development

正常运行没什么问题。后来发现在运行rake test作单元测试时会报错,把拷贝过来就没有问题。不过rubyonrails.com上不允许匿名提交bug,还真麻烦。

另外发现config.active_record.schema_format = :ruby配置下,postgresql的timestamp字段默认值current_timestamp不能正确复制到数据库。经检查它是使用db:schema:dump复制下数据库模式,再使用db:schema:load生成测试数据库模式的,这个模块为了各数据库统一,会去掉那些不一致的默认值。解决办法是设置config.active_record.schema_format = :sql。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值