Мне удалось получить покрытие кода в VS2010 Premium, работая с одним из моих решений.Результаты вышли и все было хорошо.Это было некоторое время назад.
Тем временем я установил PEX & Moles и немного поэкспериментировал с этими инструментами, то есть завершил ряд уроков и т. Д. Теперь, если я попытаюсь использовать те же настройки тестов для вычисленияпокрытие кода Я получаю следующее сообщение:
Механизм анализа покрытия кода вызвал исключение (я): не удается загрузить DLL 'Microsoft.VisualStudio.Coverage.Symbols.dll'.Процедура не найдена.
(Исключение из HRESULT: 0x8007007F)
(«Процедура не найдена» - это мой перевод локализованного текста).
Я попытался включить файлы DLL, на которые жалуется VS2010, в качестве элементов развертывания, и я также могу видеть, что они отображаются в папке тестового развертывания.Однако это ничего не решило.
Это постоянная ошибка, независимо от того, для какого проекта я пытаюсь вычислить покрытие кода.Я подозреваю, что виноват PEX / Moles, потому что он работал до установки pex, и теперь покрытие кода больше не работает из среды IDE VS2010.Конечно, могут быть и другие причины, но у меня не так много других установленных расширений.Кроме того, временные интервалы между работающим и не работающим покрытием кода более или менее совпадают с моей установкой PEX.
Может ли это быть связано с сохранением где-то пользовательских настроек?Я заметил после переустановки IDE, что все мои старые настройки, где волшебным образом на месте.Может быть, мне нужно что-то удалить где-то?
Возможно, мне следует также указать, что я собираю свои сборки на месте.Не задействован ни сайт группы, ни TFS-сервер.
В поисках решения я нашел следующие ссылки, однако ни одна из них не имела прямого отношения к моей проблеме:
В последней приведенной выше ссылке указано, что необходимо сохранить файл Microsoft.VisualStudio.Coverage.Symbols.dll и Microsoft.VisualStudio.Файлы Coverage.Analysis.dll находятся в той же папке.Оба находятся в следующем месте на моем компьютере:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies
Мой компьютер на самом деле является 64-разрядным, однако указанные выше файлы расположены в 32-разрядном расположении.Может ли это быть причиной?
Спасибо за любую помощь в решении этой проблемы (которая может быть вообще не связана с PEX!)
Редактировать 2012-02-16 : я могучтобы выполнить мои тесты, и я также получаю файл data.coverage, сгенерированный в соответствующем месте.Однако, дважды щелкнув файл data.coverage в Проводнике и попытавшись развернуть его в VS2010 (окно результатов покрытия кода), я получаю следующее сообщение об ошибке:
Механизм анализа покрытия кода вызвал исключение (я)):
Не удалось найти файл изображения "имя файла DLL, который я хочу установить на инструменте"?
Если я загляну в папку out моих результатов теста, то увижу, что DLL, упомянутая в приведенном выше сообщении об ошибке, действительно присутствует!Есть также файл .instr, который, как я понимаю, является фактическим инструментарием, который имел место?
В настоящее время я не могу перезаписать файл dbghelp.dll в C: \ Windows \ system32 из-за отсутствия прав,Однако я попытался также включить файл dbghelp.dll, расположенный в Microsoft Visual Studio 10.0 \ Common7 \ IDE, в качестве элемента развертывания в моих настройках теста.Оба файла dbghelp.dll (а также Microsoft.VisualStudio.Coverage.Symbols.dll, который я также добавил в качестве элемента развертывания) присутствуют в папке Testresults out.Но я все еще получаю вышеупомянутые сообщения об ошибках.
Edit 2012-02-17 Я проверил версию dll, упомянутую ниже на компьютере коллеги
- Microsoft.VisualStudio.Coverage.Symbols.dll
- dbghelp.dll
У нас точно такие же версии, расположенные в том же месте! После извлечения моего проекта из нашего исходного репозитория (включая настройки теста) на свою машину он смог запустить тесты в проекте И впоследствии отобразить покрытие кода в VS2010. Таким образом, виновник, скорее всего, не сами dll, а что-то изменилось в среде Visual Studio?
Редактировать 2012-02-17
Было высказано предположение, что причина этой работы на моей машине коллег, а не на моей, может быть связана с несоответствием версий dll, зарегистрированных в GAC. Я попытался извлечь содержимое GAC и использовать Guiffy, чтобы получить разницу в итоге ок. 100 DLL несоответствие. Ни один из них в версиях, хотя и ни один, связанный с DLL упомянутых в этом посте.
Мой коллега также попытался установить 64-разрядную версию PEX и смог выполнить одно исследование и впоследствии отобразить покрытие кода для тестового проекта. Под покрытием кода я ссылаюсь на оригинальную функцию VS2010, а не функцию в PEX для просмотра покрытия кода. Так что я предполагаю, что такого рода правила исключают PEX, но все равно не помогают мне вернуть результаты покрытия кода VS2010. : - (
Редактировать 2013-10-22
Мне только что назначили новую машину Windows 8 с установленным VS2010 и R # 7.1.1000.900. Я не установил PEX и получаю ту же ошибку. Может ли это быть связано с некоторыми неудобными настройками в файле testsettings? Я попытался набрать юнит-тест в Resharper, но все еще получаю ту же ошибку ...