2015-02-10 2 views
5

Я установил инструменты покрытия кода gcov на Jenkins.Код цветового кода для Gcov с Cobertura

Это прекрасно работает, но у меня возникли проблемы, связанные с цветовым кодом. Число «хитов» каждой строки является corect, но некоторые строки зеленые, если другие - красные, и я не могу сказать почему.

Пример:

enter image description here

Обратите внимание, что метод setYear все зеленые, и называется 13 раз (т е р + 12 раз в setDateAAMMJJ, как вы можете видеть на крышке экрана)

+0

'setDateAAMMJJ', вероятно, следует переименовать' setDateYYMMDD' – dnozay

+0

Да, это английский и французский вместе. Это уродливо, но это старая часть кода, и никто не хочет ее трогать. – MokaT

ответ

2

Если вы посмотрите на исходный код для cobertura-plugin on github, вы увидите, что:

table.source tr.coverPart td.hits, table.source tr.coverNone td.hits { 
    background-color: #fdd; 
    font-weight: bold; 
} 

и

table.source tr.coverPart { 
    background-color: #ffd; 
} 
  • #fdd является красным цветом,
  • #ffd является желтым цветом

Вы должны быть в состоянии использовать свой браузер 'инструменты разработчика' или функция 'Инспектор' чтобы увидеть, какой класс применяется.

Что это значит?

Желтый в левом верхнем углу означает, что исходный код покрыт частично, это означает, что вы, вероятно, не имеете покрытия 100% в вызываемых функциях.

Другой случай, о котором я могу думать (чистая спекуляция на данном этапе), заключается в том, что некоторые оптимизаторы искажают охват вашего заявления; проверьте свои флагов компиляции.

Если вы сохранили данные (файлы lcov), вы сможете использовать genhtml для создания отчета и сравнения.

+0

Спасибо вам за ответ.Сумасшедшие вещи состоят в том, что обе красные функции имеют 100% -ный охват, так как мы добавили 2 модульных теста, охват пропал 14 раз, а не 12, и теперь все зеленые. Это может быть небольшая ошибка? genhtml генерирует тот же отчет. – MokaT

+0

У меня тоже есть эта проблема, не уверен, если это вопрос gcov, gcovr или cobertura – Simon

+0

Я проверил. Это не cobertura, так как экспорт gcovr HTML одинаковый. – MokaT

1

Не знаю, относится ли это к вам, но это кажется уместным. В моем случае он красный, потому что крышка ветви не 100%. При генерации xml с помощью gcovr он также добавляет данные об обложке ветви.

Можно покрыть все линии, но не покрыть все ветви. У меня есть все виды проблем с крышкой ветви.

Некоторые из них описаны в этих сообщениях.

Why gcc 4.1 + gcov reports 100% branch coverage and newer (4.4, 4.6, 4.8) reports 50% for "p = new class;" line?

What is the branch in the destructor reported by gcov?

Все еще ищете способ решения таких вопросов, как это ..

Смежные вопросы