Я впервые пытаюсь измерить тестовое покрытие, используя gcov . Теперь, когда я прошел начальную кривую обучения, кажется, что дела идут хорошо, за исключением одного небольшого затруднения. Я ожидаю, что это сводится к отсутствию понимания с моей стороны, поэтому я надеюсь, что кто-то, знакомый с gcov, сможет объяснить, что происходит.
Проблема в том, что у меня есть один конкретный заголовочный файл, показывающий 0% покрытия. Однако only в этом заголовке является объявлением класса для хорошо используемого класса.
Кроме того, файл реализации для класса показывает 100% охват, и я могу указать на 5 различных тестов, в которых я точно знаю, что класс успешно создается.
Так почему бы gcov сообщить о 0% охвате класса, и как я могу это исправить?
- редактировать -
Как указал Лакки ниже, если заголовок не имеет исполняемого кода, его не следует включать в расчеты покрытия. И на самом деле, из всех моих классов этот конкретный заголовочный файл является единственным, для которого gcov пытается сгенерировать информацию о покрытии.
Я провел построчное сравнение с другими заголовками, и самое большое различие, которое я обнаружил, заключалось в том, что этот конкретный заголовок не имеет явного конструктора или деструктора, в отличие от других. В попытке минимизировать различия между файлами, я добавил явный ctor и dtor к классу задачи. Однако это не имело никакого значения.