2017-01-21 5 views
1

Недавно я установил SonarQube в версию 6.2. Я заметил, что показатели охвата кода значительно сократились. В деталях охвата я вижу, что файлы с аннотациями или интерфейсами @codeCoverageIgnore имеют непокрытые строки. Похож на подсчитанный охват сонара по количеству покрытых линий (из журнала вывода xml PHPUnit) за все файлы в каталоге, указанном sonar.sources в sonar-project.properties.Неправильное покрытие с помощью Sonarqube 6.2 и плагина PHP

Перед установкой SonarQube на моем сервере я играл с версией 6.1, запущенной на официальном изображении Docker, и он работал как шарм.

Я не нашел открытого вопроса/тикера/подобного вопроса, связанного с такой проблемой, поэтому, возможно, я делаю что-то неправильно.

Детали:

  • PHPUnit 5.7.5 работает с командой:

phpunit --coverage-clover=build/phpunit.coverage.xml --log-junit=build/phpunit.log.xml

  • SonarQube 6.2 (устанавливается из официальных репозиториев меткому)
  • SonarQube Scanner 2,8
  • So narQube в PHP Plugin 2.9.2.1744

ответ

1

Ваши номера покрытия снизился с SonarQube 6.2 и SonarPHP 2.9.2, потому что сочетание версий (и выше) каналы «исполняемые строки» данные так, что покрытие может быть «в ноль» на файлы, которые не включены в отчеты о покрытиях.

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

Если вы хотите, чтобы ваши номера покрытия, чтобы вернуться к тому, что они были, у вас есть два варианта:

  1. написать больше тестов! ;-p
  2. добавить exclusions для непокрытых файлов
+0

Спасибо за ответ :) Идея истинного коэффициента покрытия не очень хорошо, но это своего рода странно, когда файл с интерфейсом не распространяется на всех, и нет способ исправить это (только исключениями). Я получаю ложные предупреждения о том, что новый код обнаружил строки, и иногда трудно найти файл, который должен быть исправлен, а не игнорироваться. Боюсь, что моя команда начнет отказываться от зарегистрированных проблем, потому что они будут думать, что Sonar, вероятно, ошибается, поэтому не стоит смотреть на нее. –

+0

Просьба сообщить о таких FP в группу [SonarQube Google Group] (https://groups.google.com/forum/?pli=1#!forum/sonarqube) –

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