Модульные тесты направляющих могут быть выполнены на другой среде, чем тест?

У нас есть большой проект мультиразработчика под направляющими, в которых мы используем тесты и для моделей и для контроллеров. Прямо сейчас разработчики должны переключить параметры DB для 'тестовой' среды для соответствия их локальным dev средам прежде, чем запустить тесты. Я задаюсь вопросом, существует ли способ запустить те тесты на какой-либо среде кроме 'теста'?

Например, мы имеем в database.yml:

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

Я ничего не могу найти в документах об этом, но возможно я смотрю в неправильном месте. Какие-либо идеи?

Спасибо!

9
задан futureal 18 May 2010 в 21:31
поделиться

1 ответ

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

Предположим, ваша новая среда будет называться 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 или другом файле. Таким образом, они просто запускают rake test: units , и тесты автоматически выполняются в их персонализированной среде.

0
ответ дан 5 December 2019 в 02:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: