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 Значение параметра

*/

Установка и настройка Doxygen

Для автоматического тестирования, сборок проекта используется 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.

Установка и настройка Coveralls