Я не понимаю, как использовать gcov
. У меня есть проект cmake, в котором есть два тестовых исполняемых файла, использующих googletest. Я добавил необходимые флаги в свой скрипт cmake:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage -g -O0")
И я перекомпилировал свой код (используя CLion и g++ 10.1).
Теперь я переключаюсь в каталог сборки и вручную запускаю оба набора тестов. Это, согласно документам, должно создать некоторые файлы, которые можно использовать для создания покрытия. отчет. Теперь я должен быть в состоянии бежать
gcovr .
из корня дерева сборки (правильно?), однако вывод такой:
(base) ciaran@DESKTOP-K0APGUV:/mnt/d/libOmexMeta/cmake-build-release-wsl-ubuntu1804-gcc101$ gcovr .
------------------------------------------------------------------------------
GCC Code Coverage Report
Directory: .
------------------------------------------------------------------------------
File Lines Exec Cover Missing
------------------------------------------------------------------------------
------------------------------------------------------------------------------
TOTAL 0 0 --%
------------------------------------------------------------------------------
Любая идея, что я делаю неправильно?
#Edit Также работает
gcovr -r . --html --html-details -o example-html-details.html
Работает, но генерирует пустой отчет
make clean
или эквивалент. - person Nate Eldredge   schedule 03.07.2020gcovr
, но все равно получаю пустой html-документ. - person CiaranWelsh   schedule 03.07.2020--verbose
. Как правило, проблема либо в том, что gcovr путается с путями и думает, что ваш исходный код не является частью вашего проекта, либо в том, что gcov не удается должным образом вызвать gcov. Также обратите внимание, что gcovr еще не тестировался с GCC 10 (набор тестов все еще работает на GCC 5…) - person amon   schedule 03.07.2020