2013-04-18 4 views
2

У нас есть два отдельных приложения Ruby on Rails, которые принимают загруженные файлы, а другой - файлы, полученные из загрузок другого приложения.Как интегрировать тест с двумя приложениями Rails

Мы пытаемся собрать сквозные тесты регрессии и интеграции черного ящика, которые демонстрируют, что при загрузке определенного файла в первое приложение вы можете рассчитывать на получение определенного файла из другого приложения.

Вопрос заключается в том, как сгенерировать сценарий, чтобы две отдельные базы данных были сброшены с посеянными значениями, два сервера активированы, а Capybara посещает два отдельных «веб-сайта».

До сих пор в создании и тестировании каждого приложения мы полагались на магию Rails, которая заставляет вещи «просто работать», поэтому, имея дело с отдельными базами данных, отдельные порты сервера и другие неизвестные морщины выглядят как камнем преткновения.

Кто-нибудь написал лучшие практики для такого рода испытаний? Любые примеры того, как автоматизировать такое тестирование интеграции?

ответ

1

Вы можете разместить оба приложения в Интернете с помощью Heroku. Затем используйте sauce_ruby gem от saucelabs.com в качестве соединителя, чтобы получить rspec и capybara для запуска тестов снова приложений. Запустите heroku run rake db: перезагрузите (с seed.rb) данные перед тестами (вы можете это сделать). sauce ruby

+0

Мне очень нравится ваш ответ. Тем не менее, он чувствует себя тяжелее, чем я надеялся, потому что он требует развертывания, прежде чем вы сможете запускать тесты и сбрасывать базу данных, а также потому, что Selenium немного тяжелее, чем драйвер Webkit Capybara или (еще лучше) драйвер для стойки. У меня есть 90% -ное решение, которое я надеюсь позже объяснить: недостающей частью является управление транзакцией rspec в одной из баз данных. –

+0

драгоценный камень sauce_ruby устарел, я в настоящее время ищу решение 2016 года, опубликую ответ, когда найду его :) – Ruff9

Смежные вопросы