Отчеты о покрытии кода с помощью Visual Studio 2013 Professional для собственного C++

Используя среду модульного тестирования C++ с Visual Studio 2013 Professional, можно писать модульные тесты и запускать их из среды IDE, но, по-видимому, для создания каких-либо отчетов о покрытии необходимо иметь версию Visual Studio Premium или Ultimate.

Можно ли получать отчеты о покрытии кода в версии Professional, желательно без установки каких-либо сторонних инструментов? Если нет, какие альтернативные варианты существуют для тех, кто не использует более дорогие версии IDE?

Обратите внимание, что можно сгенерировать данные о покрытии с помощью инструментов командной строки, но я не могу найти способ просмотреть результаты. Для справки, вот шаги для генерации командной строки статистики покрытия:

  1. Создайте код для тестирования с переключателем компоновщика /PROFILE
  2. Запустите vsinstr /coverage <binaryName>, чтобы инструментировать код; убедитесь, что вы находитесь в командной строке VS 2013
  3. Запустите start vsperfmon -coverage -output:results, чтобы запустить профилировщик
  4. Запустите модульные тесты
  5. Остановите профилировщик, запустив vsperfcmd -shutdown

Вышеупомянутое даст вам файл results.coverage, который, насколько мне известно, невозможно просмотреть без выпусков Premium или Ultimate.


person Jaywalker    schedule 13.10.2014    source источник


Ответы (3)


С VS2013 Professional вам не повезло, если вы хотите сделать это без сторонних инструментов Requirements: Visual Studio Ultimate, Visual Studio Premium (http://msdn.microsoft.com/en-us/library/dd537628.aspx). Насколько я понимаю, вам уже удалось сгенерировать файл *.coverage, и у вас возникли проблемы с его открытием. Инструмент Visual Coverage (https://github.com/jsargiot/visual-coverage) может помочь вы с этим, его очень просто использовать, и это с открытым исходным кодом. Если вы хотите найти больше альтернатив, см. другой поток SO: Просмотр кода Результаты покрытия за пределами Visual Studio. Инструменты предназначены для файлов покрытия С#, но, насколько я понимаю, не должно быть никакой разницы.

person N A    schedule 21.10.2014
comment
Так называемый инструмент с открытым исходным кодом Visual Coverage без зазрения совести включает в себя две библиотеки MS DLL, которые, я полагаю, не открыты для повторного распространения. Инструменту ReportGenerator требуются данные о покрытии в формате XML, которые, как я полагаю, недоступны за пределами Premium и Ultimate. - person Jaywalker; 21.10.2014

Если вы готовы использовать сторонние библиотеки, вы можете использовать OpenCPPCoverage. Это работает для меня как приложение командной строки. Но я не мог запустить его как плагин Visual Studio в Professional Visual Studio 2013.

person Jimilian    schedule 12.08.2015
comment
Что ж, с сегодняшнего дня вы можете использовать его как подключаемый модуль Visual Studio (Community+); Я только что закончил реализацию и решил поделиться: github.com/atlaste/VSOpenCPPCoverage. Готово работает с MSTest и пользовательскими исполняемыми файлами (в основном это то, что я использую :) - person atlaste; 08.06.2016

Одним из возможных способов получения данных о покрытии является запуск набора инструментальных средств в вашей программе модульного тестирования. Инструмент инструментирования сообщит вам, сколько было покрыто во время выполнения, и вы можете легко связать эти данные с тем, какое покрытие дают вам ваши модульные тесты. Я сделал это с проектом XCode и OpenPAT, но вы можете сделать то же самое с любым удобным для Visual Studio набором инструментов.

person BlamKiwi    schedule 22.10.2014
comment
Существуют ли какие-либо известные дружественные к Visual Studio наборы инструментов, которые делают то же самое? - person Jaywalker; 22.10.2014
comment
В проекте я использовал этот инструмент профилирования glowcode.com/summary.htm. К сожалению, я не нашел ничего похожего на OpenPAT или Valgrind для Windows. - person BlamKiwi; 23.10.2014