如何在测试我的应用程序之前自动加载测试数据库中的数据?

发布于 2024-12-05 01:53:18 字数 531 浏览 1 评论 0原文

我正在使用 Ruby on Rails 3.0.9 和 RSpec 2。我想在测试应用程序之前自动加载 test 数据库中的种子数据。也就是说,在测试启动时(当我运行测试时)我想“自动填充”\“自动启动”测试数据库

如何用种子数据填充数据库?


PS:当我阅读周围时,(也许)我应该通过向 / 添加一些代码来填充测试数据库spec/spec_helper.rb 文件...但是什么代码以及如何?

在我的 task/custom.rake 文件中,我有:

namespace :test do
  desc "Boot database"
  task :boot => [:load, :seed] do
  end

  desc "Reboot database"
  task :reboot => [:purge, :boot] do
  end
end

I am using Ruby on Rails 3.0.9 and RSpec 2. I would like to auto-load seed data in the test database before I tesst my application. That is, at the testing start up time (when I run tests) I would like to "auto-populate"\"auto-boot" the test database.

How can I populate the database with seed data?


P.S.: As I read around, (maybe) I should populate the test database by adding some code to the /spec/spec_helper.rb file... but what code and how?

In my task/custom.rake file I have:

namespace :test do
  desc "Boot database"
  task :boot => [:load, :seed] do
  end

  desc "Reboot database"
  task :reboot => [:purge, :boot] do
  end
end

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

深空失忆 2024-12-12 01:53:18

如果您只想调用种子耙任务,我会这样做:

ENV['RAILS_ENV'] = 'test'
Rake::Task["db:seed"].invoke

但是,我建议使用 Fixtures (http://guides.rubyonrails.org/testing.html#the-low-down-固定装置上)。

或者甚至更好的是像 Factory Girl (https://github.com/thoughtbot/factory_girl) 这样的固定装置替代品,您可以使用所有相关数据加载虚拟数据。这是一种不那么脆弱的方法。

If you'd like to just invoke the seed rake task, I'd do something like this:

ENV['RAILS_ENV'] = 'test'
Rake::Task["db:seed"].invoke

But, I'd recommend using Fixtures (http://guides.rubyonrails.org/testing.html#the-low-down-on-fixtures).

Or even better a fixture replacement like Factory Girl (https://github.com/thoughtbot/factory_girl), whereby you can load dummy data with all the associated data. This is a much less brittle approach.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文