Как получить Visual Studio для отображения результатов покрытия кода для DLL с 0% покрытия кода? - PullRequest
4 голосов
/ 09 ноября 2010

Я написал программу, которая сообщает мне, все ли dll в файле результатов покрытия кода превышают указанный процент покрытия кода.

Это прекрасно работает, за исключением случаев, когда dll имеет покрытие кода 0%, поскольку библиотеки dll с покрытием кода 0% вообще не включены в файл результатов покрытия кода Visual Studio.

У меня есть доступ к списку библиотек, которые были оснащены для этого прогона покрытия кода, но я бы предпочел просто посмотреть на файл покрытия кода, если смогу.

Есть ли способ заставить Visual Studio добавить результаты покрытия кода для DLL, где процент покрытия кода = 0%?

Ответы [ 2 ]

4 голосов
/ 10 ноября 2010

Полное раскрытие: я в команде, которая разрабатывает эту функцию.

К сожалению, этой информации нет в файле покрытия кода.Когда исполняется двоичный файл, мы вставляем специальные пробники, чтобы сообщить нам, что он существует, и определить, когда выполняется каждый блок кода.

Мы не сохраняем список библиотек DLL в целевом процессе, поэтому мы знаем только оинструментальные библиотеки DLL, которые исполняются (просто инструментироваться недостаточно).

Самый простой обходной путь - это то, что вы упомянули в своем вопросе.

Спасибо за ваш отзыв, хотя мы учтем его,Извините за сложность здесь.

0 голосов
/ 01 марта 2012

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

Я использовал Reflection для этого в некоторых проектах, а сейчас мы просто добавляем CodeCoverageTestпроецировать на каждое решение и метод CodeCoverage.Ensure () в каждой сборке.

...