среда, 27 марта 2013 г.

Parralel_tests

Тесты, просто чудесная вещь, но как и многое чудесное имеет свои недостатки. Главный из них – они очень долго выполняются. 


Parralel_tests

parallel_tests – инструмент, позволяющий распараллелить выполнение тестов (test unit), спек (rspec) или фич (cucumber). Надо понимать, что он запускает параллельно разные файлы, но не отдельные тесты внутри одного файла. Поэтому ускорить выполнение одного большого спека вам не удастся.
Всё, что вам нужно делать, это создать БД как сказано в README, а также после каждой миграции делать rake parralel:prepare.
Запускать можно как с параметрами по-умолчанию rake parallel:spec (в этом случае количество процессов определится автоматически по числу ядер), так и указав количество процессов и путь: rake parallel:spec[4,models].
parralel_test для Rspec запускаются командой parallel_spec или bundle exec parallel_spec (т.е. +30 секунд экономии по сравнению с rake).
Если используете parralel_test, то оптимальным числом процессов является значение по-умолчанию (т.е. число ядер)
При выполнении одного теста, т.е. в рядовой работе, parralel_test не даст выигрыша вообще
Есть одно немаловажное НО
Он не будет работать на Windows.
Опирается на DeepTest, который в свою очередь использует  Kernel.fork () ..., который не реализован на Windows.