Как я могу добавить мои начальные данные в мою тестовую базу данных, используя rake db: seed? - PullRequest
14 голосов
/ 22 января 2011

Я использую Factory Girl, чтобы заполнить мои начальные данные и добавить их в базу данных в seed.rb.

Затем я запускаю свои тесты с использованием огурца.

У меня есть таблица цен, которая содержит начальные данные, которые мне нужны во всех моих средах.

Я хочу, чтобы rake db: seed добавил его в мои тестовые базы данных dev и и чтобы огурец мог использовать это тестовое семя. Затем я добавлю эти данные в prod.

Как я могу гарантировать, что мои начальные данные будут добавлены как в dev, так и в test db?

rake db:seed #only adds it only to my dev database

Ответы [ 3 ]

34 голосов
/ 22 января 2011

Вы можете попробовать что-то вроде этого:

rake db:seed RAILS_ENV=test --trace
rake db:seed RAILS_ENV=production --trace
8 голосов
/ 22 января 2011

Проверьте этот ответ из подобного сообщения.

Я действительно думаю, что лучше использовать фабрики для заполнения тестовой базы данных. И если вам нужны начальные данные во время ваших тестов, добавьте их как before :all блок в spec_helper / test_helper.

1 голос
/ 24 сентября 2017

Вы можете также захотеть посетить эту ветку при работе с тестовой базой данных, тем более что вы не хотите сохранять данные в своей тестовой базе данных.

Когда ваши тесты начнут развиваться, вы, скорее всего, обнаружите, что используете исходные данные, фабрики, а также фиктивные данные, и с постоянными данными вы столкнетесь с конфликтами.

Лично мне нравится использовать пользовательский начальный файл для моей тестовой базы данных и загружать его в мой rails_helper:

DatabaseCleaner.strategy = :truncation
DatabaseCleaner.clean

load "#{Rails.root}/db/custom_test_seed.rb"
...