Проведя некоторое исследование, я обнаружил, что не существует способа сделать это.Задачи тестовых граблей всегда отбрасывают базу данных, даже если указана опция TEST=
, как предполагает Богдан.
Используя опцию --trace
, это можетбыть доказанным.Вот вывод:
$ rake test:units TEST=test/unit/post_test.rb --trace
(in /Users/johnnyicon/Development/ror/test-app)
** Invoke test:units (first_time)
** Invoke test:prepare (first_time)
** Invoke db:test:prepare (first_time)
** Invoke db:abort_if_pending_migrations (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:abort_if_pending_migrations
** Execute db:test:prepare
** Invoke db:test:load (first_time)
** Invoke db:test:purge (first_time)
** Invoke environment
** Execute db:test:purge
** Execute db:test:load
** Invoke db:schema:load (first_time)
** Invoke environment
** Execute db:schema:load
** Execute test:prepare
** Execute test:units
Прочитав Руководства по Ruby on Rails для тестирования , он описывает, что означают некоторые из этих задач по рейку.Особое внимание следует обратить на задачу db:test:load
, которую вы видите в 7-й строке в нижней части вывода как ** Execute db:test:load
.В руководствах сказано следующее об этой задаче:
Воссоздать базу данных тестов из текущей схемы.как предполагает Богдан, задача rake по-прежнему воссоздает базу данных.Не тот ответ, на который я надеялся, но это больше не проблема.
Причина, по которой я просил начать, заключалась в том, что у меня не было доступа к другой базе данных, которую можно использовать для тестирования, поэтому я также использовал свою базу данных разработки для тестирования.Но с тех пор я смог получить еще одну базу данных, предназначенную для тестирования.
Спасибо, Богдан!Я ценю помощь!