оптимизировать время капибары - PullRequest
1 голос
/ 05 января 2012

В моем приложении rails есть набор тестов для приемочных испытаний, в котором используется чистая капибара (без огурца).

У него 220 примеров, и для его завершения требуется 21 минута. Мой не-js драйвер - rack_test, а мой js_driver - это capybara-webkit вместо селен.

Я бы хотел улучшить время тестирования, но я понятия не имею, есть ли в этом типе узкое место.

Некоторые идеи, которые у меня есть / были:

  • Смена сервера капибара. Он использовал дворнягу как запасной вариант. По умолчанию тонкий. Я установил тонкий, но я не получил никакого улучшения скорости. Похоже, в этом преимущество заключается в параллелизме, а в тестах его нет.

  • Так как я очищаю базу данных между тестами, перед каждым примером приватной части моего приложения (большинство таких примеров такие), мне нужно войти в систему. Это означает, что приложение будет входить в систему 200 раз. Есть ли способ поддерживать сеанс между примерами, чтобы избежать повторного входа в систему снова и снова?

1 Ответ

2 голосов
/ 05 января 2012

мне на ум приходят две вещи:

  1. parallel_tests может улучшить вашу скорость тестирования, если вы запускаете многоядерный https://github.com/grosser/parallel_tests

  2. предоставление backdoor-login-route для вашего test-login может повысить скорость тестирования, минуя этап login

в целом приемочные испытания проводятся медленно. Вот почему я использую их только для тестирования критических пользовательских рабочих процессов. я стараюсь держать весь свой набор тестов в пределах 5 минут. я действительно думаю, что важно, чтобы ваш набор тестов приложений был быстрым. вот почему я стараюсь использовать большую часть логики вне тестов rails, чтобы тестовый запуск завершился в течение секунды или меньше.

...