Есть ли активно поддерживаемый порт lcov для windows

Я измеряю покрытие для своего кода с помощью библиотеки gcov и хотел бы создать отчет о покрытии в удобном для пользователя формате. Я нашел утилиту lcov для этого, но она не совместима со средой Windows (в основном из-за способа анализа путей). Кто-нибудь знает про активно поддерживаемый порт lcov для Windows?

Кажется, что заставить его работать в Windows было бы довольно легко (возможно, его даже можно решить несколькими креативными пакетными /perl-сценариями, имитирующими поведение команд оболочки unix), и этот инструмент весьма полезен, поэтому я полагаю, что кто-то может уже сделал это.

5 ответов

Решение

Хотя он может быть грязным, похоже, что lcov работает под управлением Cygwin. Вы также можете быть заинтересованы в вопросе Как измерить охват тестом CppUnit (на win32 и Unix)? и его ответы. Visual Studio предоставляет отчеты о покрытии кода.

Здесь активно поддерживается порт lcov genhtml для окон: https://github.com/RickSBrown/jgenhtml.

Он специально разработан для кроссплатформенности - никаких проблем с обратными слешами в дорожках и т. Д.

Существует также версия LCOV для windows https://github.com/valbok/lcov с пояснениями, как ее использовать. У нас были некоторые проблемы с использованием нативной или другой версии LCOV. Например, отсюда http://simply-embedded.blogspot.com/2014/07/code-coverage-html-reports-using-lcov.html

Наш поток что-то вроде:

  1. Создайте проект в Windows, используя компилятор GCC ARM QNX, соберите файлы gcno.

  2. Скопируйте двоичные файлы и конфиги в цель под QNX и запустите их, соберите файлы gcda.

  3. Запустите LCOV (в Windows или Linux) для создания отчетов.

В случае использования нативной версии LCOV отчеты будут повреждены из-за путаницы окон и путей linux и некоторых ошибок внутри сценариев LCOV. Нам пришлось немного исправить сценарии, чтобы избежать таких проблем, как дубликаты dir, слэши, неработающие пути и т. Д.

Здесь есть статья Фреда Гротта, в которой показано, как установить lcov на Windows с помощью диспетчера пакетов Chocolatey.

Существует версия для Windows, созданная Дональдом МакКуином по http://www.macqueen.us/lcov.html, но я ее не проверял. Я сделал свою собственную версию, которую вы можете найти здесь:
http://simply-embedded.blogspot.com/2014/07/code-coverage-html-reports-using-lcov.html
Это сделано в версии 1.11 LCOV.

Другие вопросы по тегам