== Кратко

=== Все новые команды

direct-mk service api5_coverage (start|stop|status)
direct-mk service api5_json_with_coverage (start|stop|status)
direct-mk service api5_soap_with_coverage (start|stop|status)
direct-mk service api5_xml_with_coverage (start|stop|status)
direct-mk httpd-conf-api5-coverage
direct-mk api_stop_and_collect_coverage

Изменения в файлах
    protected/maintenance/beta_httpd_conf.pl
    etc/frontend/apache2/ppc.yandex.ru.conf
    etc/quasi-make/Beta.pm
    etc/beta/service.yaml

=== Начать сбор покрытия
direct-mk service api5_coverage start # старутем API5 psgi-приложения для всех протоколов под starman с -MDevel::Cover
direct-mk httpd-conf-api5-coverage # конфигурация апача, в которой запросы к api5 проксируются в Starman

=== Делаем вызовы к API5
На каждый протокол запускается 10 воркеров starman-а, поэтому ходить в более чем 10 потоков нет смысла.


=== Собираем отчет
direct-mk api_stop_and_collect_coverage
На выходе получаем ссылку вида: https://10919.beta3.direct.yandex.ru/api5-coverage-hjVYY/coverage.html
Это и есть наш отчет. Отчеты довольно тяжелые и лучше их удалять, физически лежат в диретории вида /var/www/beta.hmepas.10919/data/api5-coverage-b34mJ

=== Восстанавливаем конфигурацию апача
direct-mk httpd-conf-init


== Подробно

В директории ./protected/maintenance/api_coverage лежат скрипты для сбора тестового покрытия кода API5 автотестами.

Для сбора покрытия используется запуск psgi-приложения API5 из под сервера starman с опцией -MDevel::Cover

Скрипты:
* api5_coverage_starman.pl - запуск API5 psgi-приложений для протоколов xml, json, soap под starman
* stop_and_collect_coverage.pl - правильная остановка psgi-приложений и сбор информации по тестовому покрытию.

Для запуска api5_coverage_starman.pl с правильными параметрами есть service-обертка для direct-mk.

direct-mk service api5_coverage start - запускает psgi-приложения под starman для всех трех протоколов

Также сервер можно запустить для каждого протокола в отдельности
direct-mk service api5_json_with_coverage start
direct-mk service api5_soap_with_coverage start
direct-mk service api5_xml_with_coverage start

Подробности см. в etc/beta/service.yaml

Для остановки и сборка покрытия можно вызвать ./protected/maintenance/stop_and_collect_coverage.pl или готовую обертку для direct-mk:
direct-mk api_stop_and_collect_coverage

Подробности в etc/quasi-make/Beta.pm

api_stop_and_collect_coverage перед сбором текущего тестового покрытия удаляет cover_db с предыдущего запуска, поэтому если нужно совместить покрытия из нескольких запусков starman-серверов или, например, посмотреть на совокупное покрытие автотестом и юнит-тестом, то нужно остановить starman вручную через direct-mk service api5_soap_with_coverage stop и вручную запустить комманду для формирования отчета по покрытию: cover

