Можно ли запустить модульные тесты Rails в другой среде, отличной от test? - PullRequest
9 голосов
/ 19 мая 2010

У нас есть большой проект для нескольких разработчиков под Rails, в котором мы используем тесты как для моделей, так и для контроллеров. Прямо сейчас разработчики должны переключить параметры БД для «тестовой» среды, чтобы они соответствовали своим локальным средам разработки перед запуском тестов. Мне интересно, есть ли способ запустить эти тесты в любой среде, кроме 'test'?

Например, у нас есть в database.yml:

test:
  database: ...
  host: ...
  username: ...
  password: ...
...
dev-one:
  ...
dev-two:
  ...

Я не могу найти ничего в этом документе, но, возможно, я смотрю не в том месте. Есть идеи?

Спасибо!

Ответы [ 2 ]

1 голос
/ 03 сентября 2015

На данный момент это все еще не работает. Я отправил вопрос: https://github.com/rails/rails/issues/21478.

Я буду редактировать этот ответ с обновлениями

0 голосов
/ 19 мая 2010

Просто вопрос явного указания среды, когда вы собираетесь запускать тесты. Тебе просто нужно заранее приготовиться.

Скажем, ваша новая среда будет называться "testjohn" (предположительно для разработчика по имени Джон). Тогда:

1 - Копировать config / environment / test.rb в config / environment / testjohn.rb

2 - Добавьте соответствующий раздел БД в config / database.yml (скопируйте его из тестового раздела, переименуйте его, затем предположительно измените имя базы данных, пароль и другие данные). Мой (довольно упрощенный) пример использует это:

testjohn:
  adapter: sqlite3
  database: db/testjohn.sqlite3
  pool: 5
  timeout: 5000

3- Запустите ваши тесты следующим образом:

RAILS_ENV="testjohn" rake db:migrate
RAILS_ENV="testjohn" rake test:units

Кстати, поскольку RAILS_ENV - это просто переменная среды, у вас может быть сценарий, который устанавливает его заранее, или даже каждый разработчик настраивает свою собственную переменную RAILS_ENV в своем .profile или любом другом файле. Таким образом, они просто запускают тест рейка: блоки и тесты автоматически выполняются в их персонализированной среде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...