【发布时间】:2012-04-17 19:31:06
【问题描述】:
在我的 Rails 应用程序中,我有两个数据库,我可以通过以下设置启动并运行它
database.yml
development: &defaults
adapter: mysql
encoding: utf8
database: <Database1>
username: <user_name>
password: <password>
host: localhost
second_development: &defaults
adapter: mysql
encoding: utf8
database: <Database2>
username: <user_name>
password: <password>
host: localhost
test: &defaults
adapter: mysql
encoding: utf8
database: <Database1_test>
username: <user_name>
password: <password>
host: localhost
second_test: &defaults
adapter: mysql
encoding: utf8
database: <Database2_test>
username: <user_name>
password: <password>
host: localhost
但问题是在运行测试用例时,我使用的是“mocha”、“guard”和“notahat-machinist”,当我尝试运行测试用例时,它首先运行 schema.rb 文件。但问题是它只从第一个测试数据库创建模式
test: &defaults
adapter: mysql
encoding: utf8
database: <Database1_test>
username: <user_name>
password: <password>
host: localhost
这将使与第二个测试数据库“Database2_test”相关的测试失败。解决方法是什么。
生成一个包含数据库模式的 schema.rb 文件。
提前致谢
【问题讨论】:
-
为什么需要在测试框架的一次运行中对第一个测试环境和第二个测试环境进行测试?
-
嗨@sarnold,感谢重播,我的单元测试分布在两个数据库中,所以在运行单元测试时我需要两个数据库
标签: ruby-on-rails database testing activerecord schema