Посмотрите, как DataMapper делает этим . Они передают переменную окружения ADAPTER
при запуске спецификаций, которая изменяет гемы, которые устанавливаются / загружаются компоновщиком, и изменяет настройку соединения в помощнике спецификаций. Вы должны быть в состоянии сделать что-то подобное, в основном запуская полный пакет один раз для каждой возможной базы данных.
Это выглядит так, когда вы запускаете спецификации ядра DM:
ADAPTER=mysql bundle install
ADAPTER=mysql bundle exec spec spec
ADAPTER=sqlite bundle install
ADAPTER=sqlite bundle exec rspec spec
Я считаю, что если вы хотите получить лучшее освещение, это хороший подход. Если вы хотите выборочно тестировать разные вещи для разных частей тестов, вам просто нужно использовать условные выражения, хотя (в общем) я считаю условные выражения в тестах плохой вещью.