Значения процента покрытия кода в подключаемом модуле Jacoco eclipse и SonarQube отличаются

У меня есть Java-проект. Покрытие кода этого проекта согласно подключаемому модулю Jacoco eclipse (EclEmma Java Code Coverage 2.3.1.201405111647) составляет 22,3%. Я создаю отчет .exec и передаю его в SonarQube и запускаю анализ с помощью Sonar runner. Покрытие кода, показанное в веб-интерфейсе SonarQube, в результате составляет 20,2%. Значения покрытия на уровне пакета также отличаются от того, что показывает подключаемый модуль Jacoco для eclipse. Как это возможно? Разве SonarQube не берет значения из отчета .exec, созданного Jacoco?


person umairaslam    schedule 19.08.2014    source источник


Ответы (1)


Jacoco основан на анализе байт-кода. Файл exec объединяется с файлами классов, чтобы получить окончательные значения покрытия кода. Проблема в моем случае заключалась в том, что байт-код, созданный компилятором Eclipse для Java (для плагина Jacoco eclipse) и код, созданный Javac (во время анализа на эхолоте), отличались. Следовательно, значения покрытия кода, сгенерированные обоими инструментами, были разными.

person umairaslam    schedule 20.08.2014
comment
Как ты это починил? - person Nelson Ramirez; 24.10.2016
comment
@NelsonRamirez использует один и тот же компилятор (поставщик, версия) в обоих случаях. - person Godin; 31.10.2016