gcovr не генерирует отчеты по некоторым веткам на Jenkins
Мы обнаружили, что для некоторых из наших веток Github, которые автоматически добавляются в Jenkins, gcovr не генерирует никакой информации о покрытии. Он утверждает, что файлы не найдены, и возвращает кодовое покрытие 0%.
Другие ветки работают нормально. Как только мы перетащим код в master, gcovr может сгенерировать файлы покрытия кода для того же кода.
1 ответ
Это происходит потому, что gcov создает файлы, которые содержат весь путь, например #usr#include#boost#numeric#conversion#detail#converter.hpp.gcov
, Если имя ветви является частью пути рабочей области Jenkins, длинное имя ветви может удалить некоторые из этих сгенерированных имен файлов на максимальную длину имени файловой системы.
Чтобы это исправить, установите gcov для хэширования имен файлов и запустите gcovr в два этапа:
gcovr -r `pwd` --gcov-executable="gcov -s `pwd` -x" -k
gcovr -r `pwd` --gcov-executable="gcov -s `pwd` -x" -g --html --html-details -o coverage/index.html