Интеграционные тесты Rails: сокращение времени выполнения - PullRequest
3 голосов
/ 19 марта 2011

Я хочу поделиться своими находками и услышать от других об успешных и неудачных попытках сократить время выполнения интеграционных тестов приложений Rails (будь то «обычные» тесты, основанные на Cucumber или RSpec).

Вопрос подразумевает, что тесты включают базу данных, рендеринг представления и, возможно, JavaScript / AJAX.Ei test не заглушайте / не высмеивайте медленные части приложения.

1 Ответ

1 голос
/ 19 марта 2011

Авторский ответ. Я попробовал две вещи: плагин Spork и базу данных в памяти. Моя конфигурация dev: Ubuntu VirtualBox, размещенная на Win7, Ruby 1.8.7, Rails 3, SQLite.

Spork Плагин уменьшил время запуска моих тестов с 35 до 2 секунд. Я суммировал здесь шагов, но они достаточно хорошо описаны в github readme. В этом посте также описывается, как использовать его с Guard для обеспечения перезапуска сервера spork при изменении файлов.

Я пытался использовать базу данных в памяти , чтобы сократить время выполнения. В некоторых случаях они сокращают время выполнения на 10%, но затрачивают 2 секунды на запуск при создании схемы. И результаты очень больше, чем я мог наблюдать улучшение. Поэтому я решил для себя, что улучшение не стоит хлопот.

Также я использовал RVM для замены Ruby 1.8.7 на 1.9.2 . Уменьшено время выполнения с 58 до 42 секунд.

Вывод: Spork и замена 1.8.7 на 1.9.2 могут значительно улучшить ваш опыт работы с TDD.

...