Я на Rails 3.2 , и мой gemfile настроен так:
# Testing Gems
gem "factory_girl_rails", :group => :test
group :development, :test do
gem "capybara"
gem "rspec-rails"
gem "guard-rspec"
gem "ruby_gntp", :require => false
gem "addressable"
gem "launchy"
end
Однако Factory Girl настаивает на сохранении записей тестирования в моей базе данных разработки, а не в базе данных тестирования. Обратите внимание, что я использую Guard для запуска тестов через оболочку.
Вот что у меня в database.yml:
# SQLite version 3.x
# gem install sqlite3
#
# Ensure the SQLite 3 gem is defined in your Gemfile
# gem 'sqlite3'
development:
adapter: sqlite3
database: db/development.sqlite3
pool: 5
timeout: 5000
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
adapter: sqlite3
database: db/test.sqlite3
pool: 5
timeout: 5000
production:
adapter: sqlite3
database: db/production.sqlite3
pool: 5
timeout: 5000
Я знаю, что мой вопрос похож на этот: Фабричная девушка, сохраняющая записи в моей базе данных разработки , но я делаю все, что он делал, и он все еще не работает для меня.
Я также запустил bundle update
, bundle install
, bundle install --without test
и затем bundle install
снова. Сначала я думал, что это проблема Gemfile.lock, но все, что я делаю для обновления, не имеет никакого эффекта.
У кого-нибудь есть идеи?
Обновление
Все мои фабрики используют базу данных development.sqlite3, но вот пример:
FactoryGirl.define do
factory :saddle, :class => Saddle do
name "Carlton"
saddle_category_id 2
description "This is a saddle description"
details "Saddle details will go here!"
best_uses "List of best uses should go here."
price 3025.00
end
end
Тестовый код, который сохраняется в моей базе данных, просто saddle = Factory(:saddle)
.