/ / как мога да получа C ++ код overage от google тест апартамент в терминал? - c ++, тестване на единица, непрекъсната интеграция, покриване на код

как мога да получа C ++ код overage от google тест апартамент в терминал? - c ++, тестване на единица, непрекъсната интеграция, покриване на код

Започнах да използвам Google Тест единични инструменти за тестване, които изграждам в тръбопровод за CI. Има ли инструмент за кодово покритие, който работи в корпуса и би ми позволил да задам прагове и да добавя като работа в тръбопровода?

За справка идвам от NodeJS фон и използвам тръбопровод, както следва:

  1. линтер (eslint)
  2. единични тестове (жасмин)
  3. кодово покритие (покритие от Истанбул && Istanbul check-coverage)

Битката, с която се боря, е третата стъпка.В NodeJS мога да задам приемливите прагове и заданието не успее, ако те не са изпълнени.

Надявах се да възпроизведа това за моя C ++ код. Възможно ли е това дори?

Отговори:

1 за отговор № 1

Покритието на кода не е свързано с тестовата рамка, която използвате.

С C ++ в Linux, трябва да компилирате софтуера си със специални знамена, за да дадете възможност за покриване на кода, напр. с g ++ трябва да зададете аргумента --coverage (и препоръчва се и деактивирането на всички оптимизации).

След това, когато стартирате тестовите програми, ще получите много файлове с данните за покритието в тях. Те могат да бъдат събрани и оценени, напр. lcov.
lcov може да създаде HTML страници с резултата, но също така отпечатва сумата от анализа на покритието stdout, Така че, ще трябва да създадете скрипт, който да работи lcov, филтрира изхода и съобщава за грешка или грешка в зависимост от измерения процент.

Btw, можете да зададете лимити за lcov за да определите кога покритието е достатъчно или не, но това се използва само за цвета на фона в HTML изхода.

Във всяка от тези теми ще намерите няколко статии тук в Stackoverflow, как тези задачи могат да бъдат изпълнени.