Ответ 1
Вы можете попробовать что-то вроде этого:
rake db:seed RAILS_ENV=test --trace
rake db:seed RAILS_ENV=production --trace
Я использую Factory Girl для заполнения моих данных семени и добавления его в db в seed.rb.
Затем я запускаю свои тесты с помощью Cucumber.
У меня есть таблица цен, которая содержит исходные данные, которые я хочу во всех средах.
Я хочу использовать rake db: seed, чтобы добавить его в мой dev и test db и для огурца, чтобы иметь возможность использовать это тестовое семя. Затем я добавлю также данные семян в prod.
Как я могу гарантировать, что мои данные семени будут добавлены в dev и test db?
rake db:seed #only adds it only to my dev database
Вы можете попробовать что-то вроде этого:
rake db:seed RAILS_ENV=test --trace
rake db:seed RAILS_ENV=production --trace
Просмотрите этот ответ из аналогичного сообщения.
Я действительно считаю, что лучше использовать фабрики для заполнения тестовой базы данных.
И если вам нужны данные семян во время тестов, добавьте их как блок before :all
в spec_helper/test_helper.
Вы можете захотеть посетить этот поток, а также при работе с тестовой базой данных, тем более, что вы не хотите сохранять данные в своей тестовой базе данных.
По мере того, как ваши тесты начнут развиваться, вы, скорее всего, окажетесь с использованием данных семян, фабрик, а также издевательств, а с постоянными данными вы столкнетесь с конфликтами.
Лично мне нравится использовать собственный файл семпла для моей тестовой базы данных и загружать его в свой rails_helper:
DatabaseCleaner.strategy = :truncation
DatabaseCleaner.clean
load "#{Rails.root}/db/custom_test_seed.rb"