如何在不丢弃DB内容的情况下运行Rails集成测试?

Ric*_*chH 11 integration-testing unit-testing ruby-on-rails

在推送到生产之前,我已经编写了一些集成测试,我想在我的prod数据库副本上运行.这让我可以测试我的所有路线是否仍然正确,所有页面都可以正常渲染,而且一些多页工作流程可以按预期工作.

当我运行集成测试时,它会丢弃我加载的数据库并加载测试夹具(如预期的那样).如何更改此行为并保留我的生产数据库的副本?

小智 2

集成测试调用 db:test:prepare,后者调用 db:test:clone_struct,后者调用 db:struct:dump 和 db:test:purge

您可以编写自己的任务

namespace :your_namespace do
  Rake::TestTask.new(:integration => "db:migrate(if you want") do |t|
    t.libs << "test"
    t.pattern = 'test/integration/**/*_test.rb'
    t.verbose = true
  end
end
Run Code Online (Sandbox Code Playgroud)