MSTest код покрытия - PullRequest
       33

MSTest код покрытия

3 голосов
/ 07 июня 2010

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

Метод инициализации класса WebServiceTest.wstest.MyClassInitialize выбросил исключение. System.IO.FileLoadException: System.IO.FileLoadException: не удалось загрузить файл или сборку 'TestAssembly, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = 57f286581e1d278a' или одна из ее зависимостей. Проверка строгого имени не удалась. (Исключение из HRESULT: 0x8013141A) ---> System.Security.SecurityException: Сбой проверки строгого имени. (Исключение из HRESULT: 0x8013141A). Все, что я нашел, сказал, чтобы зарегистрировать TestAssembly в GAC. Это то, что я должен делать? Почему он работает в режиме отладки? Спасибо

Ответы [ 3 ]

5 голосов
/ 19 июля 2010

У меня была такая же проблема, и ссылка ниже помогла мне ...

http://weblogs.asp.net/soever/archive/2005/07/23/420338.aspx

VS.NET 2005: покрытие кода для подписанных сборок, в настоящее время я работаю над приложениемиспользуя VS.NET 2005, и поскольку все инструменты TDD, такие как модульное тестирование и покрытие кода, доступны, я начал их использовать.

Когда я начал покрытие кода в моем подписанном приложении, я получил следующее исключение:

Метод теста X выдал исключение: System.IO.FileLoadException: Не удалось загрузить файл или сборку 'Y, Версия = 1.0.0.0, Культура = нейтральная, PublicKeyToken = Z' или одна из ее зависимостей.HRESULT: 0x8013141A Ошибка проверки строгого имени.---> System.Security.SecurityException: исключение из HRESULT: 0x8013141A Сбой проверки строгого имени в X.

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

Решение состоит в том, чтобы отказаться от сборки после контрольно-измерительной аппаратуры.Файл localtestrun.testrunconfig (или что-то подобное) в элементах решения (дважды щелкните по нему) можно включить в отставку в разделе «Покрытие кода».Это решает проблему.

4 голосов
/ 10 мая 2011

Также можно просто отключить все подписанные проверки сборки на конкретной машине, выполнив:

sn.exe -Vr *

Однако используйте с осторожностью, так как это открывает уязвимость системы безопасности. Мы используем это на нашей внутренней виртуальной машине, которая измеряет покрытие для нас. Посмотрите на использование sn.exe, так как можно сузить область действия этой команды.

0 голосов
/ 26 ноября 2014

Я работаю с VS.Net Ultimate 2012

и мне помогло это решение:

Щелкните правой кнопкой мыши Тестовый проект-> Свойства-> Вкладка «Сборка»> Переключить Генерация сборки сериализации в положение «Выкл.

...