Как я могу заставить огурец и очиститель базы данных оставить мои начальные данные в моей базе данных rails test? - PullRequest
14 голосов
/ 22 декабря 2010

У меня есть несколько таблиц базы данных, в которых есть данные только для отображения, они никогда не меняются. Загрузка всех начальных данных занимает много времени. Я использую огурец, который, кажется, использует gem для database_cleaner перед каждым сценарием, чтобы обрезать все таблицы в тестовой базе данных. Есть ли способ сказать database_cleaner или cucumber оставить несколько таблиц в покое, или я застрял с загрузкой своих начальных данных перед каждым сценарием? я бегу рельсы 2.3.8 огурец 0.10.0 огурцы-рельсы 0.3.2 database_cleaner 0.50.0 Буду признателен за любую оказанную помощь. Том

1 Ответ

20 голосов
/ 22 декабря 2010

Если вы используете ActiveRecord или DataMapper, вы сможете использовать стратегию :transaction вместо :truncation.

DatabaseCleaner.strategy = :transaction

Или, как указывает @traday, вы можете использовать список исключений с усечением.

DatabaseCleaner.strategy = :truncation, {:except => %w[widgets]}

Документы DatabaseCleaner заслуживают прочтения. Посмотрите в features/support/env.rb, где это обычно устанавливается с огурцом.

...