Как настроить покрытие кода в проекте C++ googletest в Visual Studio 2010

У меня есть проект googletest на С++ в Visual Studio 2010 Professional. Это создает консольное приложение, которое генерирует вывод результатов теста в формате XML. Как я могу настроить его для получения информации о покрытии кода?

Я пробовал инструкции здесь для инструментирования кода, но для просмотра результатов покрытия кода, по-видимому, требуется Visual Studio Ultimate. Есть ли конвертер для файлов .coverage, которые создает Visual Studio?

Бонусные баллы за портативные/бесплатные/открытые решения!


person Janik Zikovsky    schedule 08.04.2013    source источник


Ответы (2)


Вы можете попробовать OpenCppCoverage: http://opencppcoverage.codeplex.com.

OpenCppCoverage — это инструменты покрытия кода для C++ под Windows. Он с открытым исходным кодом и хорошо работает с google test/Visual Studio C++.

Отказ от ответственности: я являюсь автором этого инструмента.

Надеюсь, что поможет.

Редактировать, чтобы следовать совету brasofilo:

Чтобы быть более точным в вашем вопросе, OpenCppCoverage должен работать с профессиональным Visual Studio C++ 2010. Единственным требованием является поддержка собственных файлов Pdb (http://msdn.microsoft.com/en-us/library/yd4f8bd1%28vs.71%29.aspx).

Это бесплатно и с открытым исходным кодом, и вы можете найти исходники здесь: https://opencppcoverage.codeplex.com/SourceControl/latest.

Что вы имеете в виду под портативным?

  • Если вы имеете в виду «Мультиплатформенность» -> Нет, это работает только в Windows
  • Если вы имеете в виду «Портативное приложение» (http://en.wikipedia.org/wiki/Portable_application ): OpenCppCoverage требовал, чтобы на хосте был установлен только распространяемый пакет для Visual Studio 2013 (http://www.microsoft.com/en-US/download/details.aspx?id=40784), но он не записывает в реестр, и вы можете перемещать двоичные файлы куда хотите (например, USB-ключ ).

Надеюсь, что поможет.

person OpenCppCoverage    schedule 24.08.2014
comment
Пожалуйста, адаптируйте каждый ответ в соответствии с рассматриваемым вопросом, скопируйте и вставьте один и тот же ответ, это не сократит его, отказ от ответственности или не отказ от ответственности. - person brasofilo; 24.08.2014
comment
@OpenCppCoverage Приятно видеть, что ваш проект все еще жив - последнее обновление 4 дня назад. Я заметил, что у вас есть интерфейс командной строки — могут ли этот инструмент использоваться программистами Windows, которые не используют MSVC и по-прежнему генерируют вывод HML? Это ФОСС? Можно ли его пересобрать для использования в Linux? Он основан в первую очередь на gcov (и, возможно, lcov) и просто переработан как плагин MSVC? Есть планы на версию для Linux или возражения против форка, если это FOSS? - person Mawg says reinstate Monica; 09.09.2015

Я думаю, вы можете использовать для этой цели VSTEST.Consol.exe http://msdn.microsoft.com/en-us/library/vstudio/jj155796.aspx. Согласно документации, он будет запускать тесты, написанные для любой тестовой среды. Вы можете включить опцию /Enablecodecoverage, которая Enables data diagnostic adapter CodeCoverage in the test run.

Дополнительную информацию можно найти здесь: http://blogs.msdn.com/b/bhuvaneshwari/archive/2012/06/16/vstest-console-exe-commandline-test-runner.aspx

Существует также открытый инструмент покрытия исходного кода под названием ggcov: http://ggcov.sourceforge.net/index.html

Надеюсь, что это поможет.

person taocp    schedule 08.04.2013
comment
Похоже, VSTest.Console.exe поставляется с Visual Studio 2012; Я еще на 2010. - person Janik Zikovsky; 08.04.2013
comment
@PsZk Нет, это тоже идет с VS2010. по этой ссылке: social.msdn.microsoft.com/Forums/en-US/vsttest/thread/ - person taocp; 08.04.2013