Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Ищется модуль для ускорения работы автотестов


Автор: Logo 1.2.2016, 17:42
Есть большой проект, загружается довольно долго. Собираюсь покрыть его автотестами, но если загружать все окружение на каждый тест-файл, прогон по тестам займет много времени.
Появилась идея сначала один раз загрузить окружение, а потом форкатся и выполнять .t файлы. Перед тем как писать свой модуль поискал на CPAN'е что-то готовое, но не смог найти. Может кто-то знает что-то подобное?

Автор: Sartorius 1.2.2016, 19:25
Может Docker будет полезен? 
https://www.docker.com/
https://habrahabr.ru/post/253877/

Автор: Logo 2.2.2016, 14:37
Нет, не то, мне нужно ускорить выполнение автотестов.
Что-то вроде такого
Код

# было 
perl ./t/01-test.t # в каждом из тестов поднимается тяжелый My::Big::Project
perl ./t/02-test.t
perl ./t/03-test.t
...
# стало
testforkserver.pl --port 5555 -m My::Big::Project # загрузить My::Big::Project один раз
testforkclient.pl --port 5555 ./t/01-test.t # выполнить ./t/01-test.t форком от процесса testforkserver.pl
testforkclient.pl --port 5555 ./t/02-test.t
testforkclient.pl --port 5555 ./t/03-test.t
...

или с другим интерфейсом

Автор: arto 3.2.2016, 08:52
а почему не объединить все тесты в один файл?

с сервером проблема с чисткой окружения и результатов.

Автор: Logo 3.2.2016, 17:15
Цитата

а почему не объединить все тесты в один файл?

При большом количестве тестов это будет неудобно.

Цитата

с сервером проблема с чисткой окружения и результатов.

решается форком основного процесса перед выполнением теста, каждый тест будет иметь одинаковое окружение.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)