Instruments - PO-31/QtReports-OLD GitHub Wiki
Инструменты
Для документирования исходных кодов проекта используется система Doxygen
Doxygen — это кроссплатформенная система документирования исходных текстов, которая поддерживает большое количество языков программирования. Инструмент для создания конечной документации кода в виде веб-страниц.
Он генерирует документацию на основе набора исходных текстов и также может быть настроен для извлечения структуры программы из недокументированных исходных кодов. Возможно составление графов зависимостей программных объектов, диаграмм классов и исходных кодов с гиперссылками.
Doxygen имеет встроенную поддержку генерации документации в формате HTML, LAΤΕΧ, man, RTF и XML. Также вывод может быть легко сконвертирован в CHM, PostScript, PDF.
Doxygen - гибкая система с большим количеством параметров позволяющих проводить широкую настройку документации.
Комментарии к коду записываются внутри специальной структуры:
- Короткие:
///комментарий
///[\parameter]
- Длинные:
/*! Эта структура позволяет писать несколько строк комментариев
*/
/*! @~russian - язык отображаемого текста
[@parameter]
*комментарий
Для функций:
@param[in] name Имя параметра - описание параметра функции
@param[out] result Значение параметра
*/
Для автоматического тестирования, сборок проекта используется Travis CI
Travis CI — распределённый веб-сервис для сборки и тестирования программного обеспечения, имеет полную интеграцию с сервером GitHub.
Веб-сервис поддерживает сборку проектов на множестве языков, включая C, C++, D, JavaScript, Java, PHP, Python и Ruby. Разные проекты с открытым исходным кодом используют Travis CI для непрерывной интеграции кода.
Установка и настройка Travis CI
В качестве событий для запуска работы сервиса могут быть следующие события:
- Push-commit на отслеживаемый репозиторий;
- Ручной перезапуск уже ранее сделанной сборки;
- Pull-request (запрос внешнего пользователя на добавление своих изменений).
Сценарий сборки находится в файле "travis.yml" в корневом каталоге репозитория.
Скрипт travis.yml описывает две части работы удаленного сервера:
- параметры среды ;
- порядок сборки.
Параметры среды в .travis.yml:
-
os – тип ОС на удаленном сервере(Travis CI предоставляет на данный момент только два семейства ОС linux и osx (mac os));
-
dist - дистрибутив выбранной ОС;
-
sudo – права пользователя (false – пользователь не имеет права root’a (не может вызывать команду sudo), required – пользователь может иметь права root’a посредством вызова sudo. При этом для каждой сборки требуется полный цикл виртуальной машины);
-
compiler - компиляторы и их версии;
-
env - вид сборки (RELEASE, DEBUG);
-
addons - список необходимых внешних программ и утилит для сборки.
Параметры среды в .travis.yml
- env - вид сборки (RELEASE, DEBUG);
- global – Глобальные переменные;
- matrix – переменные сменяемые между сборками.
Этапы тестирования:
- apt addons - Установка необходимых аддонов для ОС;
- cache components - Настройка компонентов кэша;
- before_install - Команды перед установкой вашего пакета;
- install - Установка вашего пакета;
- before_script - Команды установки;
- script - Выполнение тестов;
- before_cache - команды перед наполнением кэша;
- after_success or after_failure - команды после удачной или неудачной сборки соответственно;
- before_deploy - перед выпуском;
- deploy - выпуск;
- after_deploy - после выпуска;
- after_script - завершение скрипта.
Для начала работы в Travis CI необходимо:
- Создать .travis.yml в корневом каталоге репозитория, в котором заранее описать все правила сборки вашего ПО;
- Зарегистрироваться в Travis CI – это можно сделать с помощью вашего аккаунта в github.com;
- Добавить репозиторий к отслеживанию – после того как вы вошли как пользователь Travis CI вам будет предложено добавить репозитории к отслеживанию. Также на данную страницу можно попасть перейдя на вкладку Accounts в вашем пользователе (верхний правый угол).
Для оценки покрытия кода используется LCOV
- LCOV – инструмент для создания отчета в специализированном формате, с покрытием кода.
- Genhtml - инструмент для создания веб интерфейса на основе результатов работы LCOV.
Реализует расширенный функционал GCOV:
-
HTML - вывод: показатели покрытия дополнительно указываются с помощью гистограмм и определенных цветов.
-
Поддержка крупных проектов: обзорные страницы позволяют быстро просматривать данные о покрытии, предоставляя три уровня детализации: просмотр каталогов, просмотр файлов и просмотр исходного кода.
Установка LCOV
Пакет LCOV доступен или RPM или tarball:
http://ltp.sourceforge.net/coverage/lcov.php
Для того, чтобы установить, распакуйте его в директорию и запустите:
make install
Использование Git для самой последней (но, возможно, нестабильной) версии:
git clone https://github.com/linux-test-project/lcov.git
Перейдите в созданный каталог lcov и введите:
make install
Для оценки покрытия кода можно использовать Coveralls
Coveralls это веб-сервис, помогающий отслеживать покрытия кода с течением времени; позволяющий проанализировать в какие строки были вхождения во время проведения тестирования, благодаря чему можно значительно увеличить покрытие, добавив новые тесты для конкретных случаев, а также избавиться от дублирующих тестов. Последующая оптимизация кода достаточно легко реализуется.
Проверят покрытия кода написанного на языка: Ruby, Python, PHP, Node.js, C/C++, Scala.
Сборку производит на : Travis CI, Travis Pro, CircleCI, Jenkins, Semaphore, or Codeship.