В качестве базовой линии мое текущее приложение имеет 2 набора модульных тестов (для кода, не зависящего от рельсов, и для кода, зависящего от рельсов). 2 из самых трудоемких вещей при запуске rake в среде рельсов загружают рельсы и bundle exec. Именно поэтому мы переносим столько наших тестов в среду, не связанную с рельсами, и не связанную с пакетом. Поэтому, касаясь частей нашей существующей системы, мы перемещаем спецификации в секцию, не зависящую от рельсов.
Вот разбивка синхронизации наш текущий набор тестов:
времени грабли спецификации: no_rails Законченный в 0.14229 секунд 141 примеров, 0 сбоев
реальных 0m0.981s пользователя 0m0.783s SYS 0m0.168s
время рек спецификация Законченной в 11,86 секундах 677 примеров, 0 сбоев, 2 в ожидании
реального 0m28.613s пользователя 0m23.435s SYS 0m3.180s
Я уверен, что вы можете понять, почему мы двигаемся не Рельсы-зависимые примеры кода от Рельсы-зависимых из них. Есть еще несколько преимуществ для того, чтобы ваш код зависел от рельсов, но скорость тестов является одной из самых важных. Минимизация цикла обратной связи крайне важна, чтобы получить максимальную выгоду от ваших тестов в качестве регрессии.
ОБНОВЛЕНИЕ Так же, как и обновление, поскольку мы перемещаем вещи, вот текущая статистика для наших спецификаций. Мы определенно находим, что скорость должна быть преимуществом, а также расчетное давление, чтобы изолировать себя от рельсов. Когда вы быстро запускаете свои спецификации, вы можете запускать их чаще, что сводит к минимуму цикл обратной связи между выполнением чего-либо и наблюдением, работает ли система. время рек Spec: no_rails закончил в 0.36083 секундах 316 примеров, 0, 1 отказов в ожидании реального 0m1.019s пользователя 0m0.858s SYS 0m0.147s
времени грабли спецификации: with_rails Законченных в 12,86 секундах 706 примеров, 0 неудачи, 2 ожидающие реальных 0m21.316s пользователя 0m18.610s SYS 0m1.954s
вы просили нас написать причины, почему ваши тесты так долго? Будете ли вы нас с нами по электронной почте своему боссу? – Bnjmn
Будет ли это больше подходит программистам SE? –