Как правильно настроить SonarQube cfamil.gcov? - PullRequest
0 голосов
/ 14 мая 2018

Я не могу получить отчеты о покрытии для работы в SonarQube.У меня есть проект C ++, для которого я использую build-wrapper-linux-x86-64 вместе с сонарным сканером.Базовый статический анализ для исходного кода, кажется, работает, но нет ничего о покрытии тестового кода, о котором сообщалось в SonarQube.

В рамках одного и того же рабочего процесса я использую lcov и genhtml для составления отчета о покрытии модульных тестов, поэтому я уверен, что большинство шагов покрытия кода выполняются правильно.Когда я вручную просматриваю файлы .gcov, в первом столбце я вижу количество прогонов, поэтому там есть данные.

Мой код организован в модули.Файл sonar-project.properties содержит следующее:

# List of the module identifiers
sonar.modules=Module1,Module2

# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# This property is optional if sonar.modules is set.
sonar.sources=./Sources,./Tests
HeliosEmulator.sonar.sources=./Application,./Sources,./Tests
sonar.cfamily.build-wrapper-output=build_output

# Existing reports
sonar.cfamily.build-wrapper-output=build_output
#sonar.cfamily.cppunit.reportsPath=junit
sonar.cfamily.gcov.reportsPath=.
#sonar.cxx.cppcheck.reportPath=cppcheck-result-1.xml
#sonar.cxx.xunit.reportPath=cpputest_*.xml
sonar.junit.reportPaths=junit

Я также хотел бы, чтобы результаты модульного теста отображались под инструментами Sonar.Поскольку я использую платформу CppUTest, у меня пока нет результатов теста xunit или junit.Это можно рассматривать как отдельную проблему, но, поскольку я не могу найти много документации о том, как использовать сканер cfamily в Интернете, я не знаю, актуальны ли перечисленные тесты.

1 Ответ

0 голосов
/ 17 мая 2018

Я забыл правильно настроить систему CI.Файлы .gcov не существовали для работы, на которой выполнялся сонар-сканер.Они существовали только в тестовом задании, которое генерировало отчет о покрытии.Отсутствие файлов в задании сканера означает, что он не может создать отчет о покрытии.

Когда я устанавливаю систему GitLab CI, которую я использую, чтобы файлы .gcov сохранялись как артефакты, внезапно начала работать отчетность о покрытии.

.gcov файлы были созданы тестовым заданием и должны быть переданы в задание сонарного сканера через хранилище артефактов.Это потому, что GitLab CI не разделяет рабочую область между зависимыми заданиями, и вы должны явно указать, какие файлы должны быть скопированы.

...