Rails 5:有没有一种方法可以针对开发数据库运行一组测试?

时间:2018-06-30 20:22:33

标签: ruby ruby-on-rails-5.2

我想针对开发数据库运行一组测试。我的seeds.rb文件从CSV填充了数据库,并且我想确保数据以期望的方式存储在数据库中。我不想对开发数据库运行所有测试,而只对特定的数据库运行。

我创建了一个集成测试。我以为我可以在#setup中切换环境,但是看来Rails.env = 'development'没有任何作用。

require 'test_helper'

class DbTest < ActionDispatch::IntegrationTest
  def setup
    Rails.env = 'development'
  end

  def test_total_settlements
    ...

是否可以在不同的环境中运行测试?如果是这样,怎么做?

2 个答案:

答案 0 :(得分:0)

我建议创建一个类,将信息播种到可配置的数据库中,然后针对该类运行测试。这样,您无需对测试数据库进行测试并运行所需的测试次数,而无需在种子失败(例如删除剩余记录)的情况下手动修改开发数据库。

一旦有了该类,就可以向Rakefile添加一个任务并使用您的类:)

答案 1 :(得分:0)

我认为,最简单的解决方案是仅对测试数据库进行播种。 您可以在需要种子数据的测试之前致电firebase-analytics-sample-data