我如何 运行 在 Rails 中的预填充数据库上进行测试?

How can I run tests on a pre-populated database in Rails?

所以我正在为大型应用程序的单个功能编写验收测试。为此我需要大量数据,并且有很多场景需要测试;所以我使用 Sequel Pro.

预填充了一个 mysql 数据库

显然,appname_test 数据库已用于应用程序中的其他测试。我想知道如何在测试开始时(在第一个上下文语句之前)将 .sql 文件(这是一个 sql 内容转储)加载到该数据库中。

我是开发新手,所以这对我来说是全新的。在此先感谢您的帮助。

更新:

我已经使用 yaml_db gem 转储开发数据库 (db:data:dump),然后将其加载到测试数据库 (db:data:load ENV_RAILS=test)。然而,一旦我 运行 我的规格测试数据库被擦干净!有没有办法从规范文件内部 运行 db:data:load ENV_RAILS=test 。我试过:

require 'rake'
Rake::Task['bundle exec db:data:load ENV_RAILS=test'].invoke

但是它说 Don't know how to build task 'be db:data:load ENV_RAILS=test'

好的,这就是我解决这个问题的方法。

我使用 yaml_db gem 和 rake db:data:dump 创建 db/data.yml(开发数据库的转储)。

然后我不得不编写一个库和 rake 任务,将 data.yml 文件转换为单独的灯具文件。我 运行 这个新的 rake 任务一次创建修复文件。

然后,在我的规范开始时,我调用了 fixtures :all,它用所有装置填充了测试数据库。