Сначала настройка...
В настоящее время я разрабатываю приложение Rails 3 в Mac OS X с использованием Ruby 1.8.7 MRI, запускает тесты и локальные разработчики в отношении базы данных MySQL. У меня есть 3 "другие" нелокальные среды, которые мы используем в моей компании для каждого приложения, называемого dev, tqa и prod. Они запускаются в Tomcat с использованием JRuby (1.8.7) с Oracle в качестве бэкэнд.
Как вы можете видеть, среда совсем другая, и мы столкнулись с некоторыми ошибками при развертывании в среде Oracle/JRuby, которые не существуют локально (например, обработка даты и указание схем по умолчанию в Oracle).
Мне нравится запускать что-то вроде Cucumber/Webrat/Capybara локально, чтобы поразить каждый URL, открытый в приложении, чтобы убедиться, что основной материал работает (т.е. smoke test). В идеале он попадает на каждый URL-адрес и выполняет некоторые простые вещи, такие как ввод данных в формы и нажатие на кнопки и т.д.
В идеале, когда я развертываю dev/tqa, я буду запускать что-то похожее, за исключением указаний на развернутое приложение вместо локального приложения. Cucumber кажется оптимизированным для попадания в локально запущенное приложение и хорошо интегрируется с Rails, но не может работать против того, что для всех намерений является "внешним" приложением (или, по крайней мере, я не могу найти простой способ, который действительно работает).
Кроме того, когда я развертываю prod, я бы хотел, чтобы аналогичный набор тестов дыма запускался, за исключением того, что он не изменил бы состояние текущей производственной базы данных (т.е. просто GET URL-адреса).
Что-то вроде Selenium можно использовать, я думаю, но мне бы очень хотелось просто запустить задачу рейка и вернуть результаты, как я делаю с Cucumber.
Есть ли способ Rails/Ruby сделать это, или все остальные просто катят свое решение с помощью wget или Selenium?
Здесь был задан аналогичный вопрос: Автоматически smoke test все веб-страницы в приложении после развертывания
Я не уверен, что вопрос именно в том, что я имею в виду.