Я хочу получить отчет о покрытии кода HTML, работающий с проектом на основе XCode 6.1. Мое решение «частично работает», но при запуске lcov я получаю много пропущенных файлов:
geninfo: file found unrecognized record format - skipping
Немного подробностей о моей настройке:
Создал конфигурацию покрытия XCode с помощью этих инструкций (шаги 1+2): https://developer.apple.com/library/ios/qa/qa1514/_index.html
Соберите и запустите мой автономный тестраннер, используя эту конфигурацию через
xcodebuild
.
Похоже, что это успешно генерирует файлы GCNO
и файлы GCDA
для каждого из моих исходных файлов. Все идет нормально.
Запустите
lcov
(v1.11), чтобы создать отчет в формате HTML. Команда, которую я использую, выглядит следующим образом:lcov --capture --derive-func-data --directory ./build/Coverage/MyCppRunner.build --output-file lcov-testrun.info --ignore-errors graph
Это также удается благодаря аргументу ignore-errors
. Однако я получаю много пропущенных файлов gcno со следующей ошибкой:
geninfo: WARNING: /Users/myname/build/Coverage/MyCppRunner.build/Objects-normal/x86_64/MyFile.gcno: found unrecognized record format - skipping
Когда я создаю отчет в формате HTML с помощью genhtml
, эти файлы не показывают покрытия.
Есть ли способ обойти эту проблему? Возможно, другой набор флагов clang
или альтернатива lcov
? Я ненадолго попробовал gcovr
, но не смог заставить его работать.