Я работаю над созданием C ++ Code Coverage и интеграцией его с SonarQube-Jenkins.
Это хорошо работает, когда я храню .cpp, .o, .gcno, .gcda и т. Д. В одном каталоге. Но у меня возникают проблемы, когда src и артефакты находятся в разных каталогах.
Я имею в виду ссылку ниже
https://github.com/SonarOpenCommunity/sonar-cxx/wiki/Coverage-tracers
Структура моего проекта примерно такая:
$ tree MyProject
MyProject/
|-- build
| `-- Makefile
`-- src
`-- main.cpp
2 directories, 2 files
Когда я создаю код и запускаю набор тестов, выходные двоичные файлы, файлы .gcno, .gcda хранятся в MyProject/build
$ tree MyProject/
MyProject/
|-- build
| |-- a.out
| |-- main.gcda
| |-- main.gcno
| `-- Makefile
`-- src
`-- main.cpp
2 directories, 5 files
Хотите знать, какие аргументы мне нужно передать gcovr для генерации xml-отчета и откуда?
e.g. gcovr -r WHERE_SONAR_SCANNER_WILL_RUN -x --object-directory=ABSOLUTE_PATH_TO_GCOV_FILES_FOLDER > report.xml
Какие все вещи мне нужно установить в sonar-project.properties?
sonar.projectKey=MyProject
sonar.projectName=MyProject
sonar.projectVersion=1.0
sonar.sources=??
sonar.cxx.coverage.reportPath=??
Задача ещё не решена.
Других решений пока нет …