代码之家  ›  专栏  ›  技术社区  ›  Sigu Magwa

rails中数据库种子文件的有效性测试

  •  3
  • Sigu Magwa  · 技术社区  · 6 年前

    随着代码的增长,种子文件可能很快变得无效。我刚刚遇到了这样的情况:open merge请求运行并通过了所有测试,但是当我运行 rails db:seed 登台服务器失败,因为种子文件没有该特定模型的所有必需字段。 有没有一种方法可以测试种子文件的有效性?

    可能相关:

    • 我使用gitlab CI来运行CI和部署
    • rails版本-5.2
    • rspec版本3
    2 回复  |  直到 6 年前
        1
  •  1
  •   matthewd    6 年前

    您可以定义运行的单独CI任务 rails db:seed 在你现有的运行的旁边 rspec (或 rails spec ,或它使用的任何拼写)。

        2
  •  1
  •   max Mike Williams    6 年前

    require 'rails_helper'
    RSpec.describe "db:seed" do
      it "works" do
        expect { Rails.application.load_seed }.to_not raise_error
      end
      it "creates a foo" do
        expect { Rails.application.load_seed }.to change(Foo, :count)
      end
    end
    

    这是可以预期的,因为“种子”实际上只需要一个ruby文件。

    Rails.application.load_seed rake db:seed 任务(又名 rails db:seed