2015-01-08 2 views
-1

Я следую за статьей для покрытия кода в VS 2013http://msdn.microsoft.com/en-us/library/dd537628.aspx. Он показывает охват Test, а не фактический код.Покрытие кода в VS2013 показывает покрытие тестового, а не фактического кода

Я выбрал модульный тест от Test explorer и нажмите на Analyze Code Coverage -> Selected Test. Окно покрытия кода открывается внизу, и оно показывает DLL модульного теста, а его покрытие и фактическая dll с покрытием кода не отображаются.

Кроме того, я рассмотрел статью http://msdn.microsoft.com/library/jj159523.aspx. Скопированы pdbs и dll в одно и то же место. В окне окна покрытия кода было

Пустые результаты не генерировались. Убедитесь, что тесты запущены, загружены необходимые бинарные файлы, соответствующие файлы символов и не были исключены с помощью пользовательских настроек. Для получения дополнительной информации см http://go.microsoft.com/fwlink/?LinkID=253731 "

Любая идея об этом?

+0

Пожалуйста, обратите внимание, – user2323308

ответ

1

Я попытался шаги, описанные в ссылке.

http://blogs.msdn.com/b/allendm/archive/2012/09/08/empty-coverage-file-with-profiler-related-errors-in-the-event-logs.aspx

Незначительные изменения, если вы используете VS 2013.

a) Переменная окружения VS120COMNTOOLS установлена ​​в \ common7 \ tools

б) RegKey HKLM \ SOFTWARE \ Microsoft \ VisualStudio \ 12,0 \ InstallDir устанавливается в папку \ Common7 \ IDE \

с) covrun32.d и covrun64.dll существует в «\ Tools \ Team Dynamic Code Coverage "

Удалена переменная окружения VS110COMNTOOLS. Эти изменения сработали для меня.

-1

Я смог решить мою проблему. Причина, по которой покрытие кода не происходило в моей DLL, было: reason = "has_fixed_base". Как только я изменил эту настройку на: Да (/DYNAMICBASE), охват начал работать.

Это помогло бы проверить эти шаги:

Свойства
  1. Open Project
  2. перейти на Linker->Advanced страницу
  3. В том, что проверить Randomized Base Address
  4. изменить его на Yes (/DYNAMICBASE)

Это должно начать покрытие кода.

Смежные вопросы