Я генерирую информацию о покрытии для приложения C ++ и использую для этого gtest, а приложение C ++ является частью сборки root build. Получил правильную информацию о покрытии почти для файлов, кроме файлов заголовков. Итак, я погуглил то же самое и нашел эту ссылку полезной, сказав, что я не получил правильного ответа. gcov не генерирует информацию о покрытии для файлов заголовков Из ссылки я понял, что для получения «mymoneyaccount. cpp .gcov» выполните «gcov mymoneyaccount. cpp», но для получения «mymoneyaccount. h.gcov ", нам нужно выполнить" gcov mymoneyaccounttest. cpp ". Мое первое сомнение: у кого-нибудь есть идея, почему нам нужно запустить тестовое приложение для создания файла заголовка .gcov? Оба файла включают "mymoneyaccount.h". "
Мой точный сценарий: я пытаюсь получить покрытие кода исходных файлов, которые находятся в папке" Source ", а тестовое приложение находится в" Test " "папка. Найдите структуру папок.
- Источник 1.1 а 1.1.1 лог c. cpp 1.1.2 logi c .h
- Тест 2,1 а 2.1.1 логический тест. cpp И Source, и Test являются искусством системы сборки Build root, скомпилировали ее и запустили тест на Raspberry Pi-3. Как часть процесса компиляции, файлы logi c. cpp .gcno и logictest. cpp .gcno были созданы в сборке P C и как часть процесса выполнения в Raspberry Pi-3, соответствующем .gcda файлы были созданы. Скопировал файлы .gcda из RPi в соответствующие места в сборке P C. Выполните gcov для файлов .gcno и получите подробную информацию о покрытии. Покрытие logi c. cpp .gcov является допустимым, а .h.gcov в тестовом каталоге удовлетворительным, в отличие от .h.gcov в исходном каталоге. Открыл .h.gcov в исходном каталоге, он показывает количество строк с точным исходным кодом (недействительные данные о покрытии), но .h.gcov в тестовом каталоге показывает количество строк с кодом как / EOF / (надеюсь, он показывает действительные данные о покрытии). Надеюсь, теперь все ясно. Есть ли какое-либо решение для просмотра содержимого .h.gcov в каталоге Test как точного кода? Только тогда мы сможем убедиться, что у нас есть достоверные данные о покрытии, и мы сможем реализовать больше тестовых примеров с оставшимся кодом. Спасибо.