我如何 运行 在 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
,它用所有装置填充了测试数据库。
所以我正在为大型应用程序的单个功能编写验收测试。为此我需要大量数据,并且有很多场景需要测试;所以我使用 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
,它用所有装置填充了测试数据库。