Ошибки тестового прогона с MSTest в VS2010 - PullRequest
10 голосов
/ 04 мая 2010

Когда я запускаю свои модульные тесты, все тесты проходят успешно, но вместо «Тестовый запуск завершен успешно» или любого другого сообщения об успехе я получаю «Ошибка тестового запуска» в маленькой полоске, которая сообщает мне, сколько моих тестов прошло хотя все мои тесты пройдены.

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

Предупреждение: конфликт при развертывании тестового запуска: элемент развертывания '[...] \ Booking.Web.dll', на который прямо или косвенно ссылается тестовый контейнер [...] \ Booking.Web.Tests.dll, не может быть развернут в «Booking.Web.dll», так как в противном случае файл «[...] \ Booking.Web.dll» будет переопределять элемент развертывания «[...] \ Booking.Web.dll», прямо или косвенно ссылающийся на «[. ..] \ Booking.Web.Tests.dll '

Ошибка: невозможно инициализировать проект ASP.NET «Booking.Web» Возникло исключение: веб-сайт не может быть настроен правильно; Не удалось получить информацию о процессе ASP.NET. Запрос 'http://localhost:54131/VSEnterpriseHelper.axd' вернул ошибку: удаленный сервер вернул ошибку: (500) Внутренняя ошибка сервера.

Я не понимаю половину того, на что это жалуется. Как мне избавиться от этих ошибок?

(И для справки: Booking.Web - это проект ASP.NET MVC 2, Booking.Web.Tests - это тестовый проект, [...] это полный локальный путь к проектам в моей среде, в большинстве приведенные выше случаи в папку / bin / debug / в проекте Booking.Web)

Обновление: В соответствии с инструкциями я искал дополнительную информацию в средстве просмотра событий. Вот что я нашел:

3008 Произошла ошибка конфигурации.
08.05.2010 2:26:15
08.05.2010 0:26:15
4ffbe9180c3d4c02adb9ac4d61dd0928
1
1
0
4484bbf4-1-129177519750954331
Полное
/
D: \ ... \ Booking.Web \
AASLOEG

1876
WebDev.WebServer40.EXE
Aasloeg \ Tomas
ConfigurationErrorsException
Не удалось загрузить файл или сборку 'Ninject.Web.Mvc, версия = 2.0.0.0, культура = нейтральная, PublicKeyToken = 79764a4ef1548af1' или одна из ее зависимостей. Подпись строгого имени не может быть проверена. Возможно, сборка была подделана или была подписана с задержкой, но не полностью подписана с правильным закрытым ключом. (Исключение из HRESULT: 0x80131045) в
System.Web.Configuration.CompilationSection.LoadAssemblyHelper (String assemblyName, Boolean starDirective) в
System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory () в
System.Web.Configuration.CompilationSection.LoadAssembly (AssemblyInfo ai) в
System.Web.Compilation.BuildManager.GetReferencedAssemblies (CompilationSection compConfig) в
... трассировка стека в абсурде.

Ответы [ 2 ]

9 голосов
/ 08 мая 2010

Прежде всего - у вас включено покрытие кода. Вы можете прочитать здесь об этом. Так что проблем с юнит-тестами нет. Это проблема покрытия кода.

Второе - это предупреждение нормально, не берите в голову.

Третье - эта ошибка - это ключевая проблема.

Могут быть разные проблемы, наиболее распространенными являются ссылки на большее количество сборок. Чтобы узнать, что именно должно быть загружено, вы должны зайти в Event Viewer и посмотреть на Windows Logs-> Application

6 голосов
/ 18 января 2012

У меня была такая же ошибка, связанная с MS-Test, которая жаловалась на то, что DLL может "переопределить элемент развертывания blah.dll".

Это происходило потому, что я запускал MS-Test для нескольких DLL одновременно, вот так:

mstest.exe /testcontainer:Tests.web.dll /testcontainer:Tests.svcs.dll /testcontainer:Tests.core.dll

Когда MS-Test выполнял это, он пытался извлечь все выходные DLL из тестов и поместить их в каталог / Out тестового прогона. В моем случае Tests.svcs.dll и Tests.core.dll оба ссылались на одну и ту же сборку ( Core.dll ) и поэтому пытались скопировать эту DLL в том же месте дважды (таким образом, вызывая предупреждение).

Чтобы решить эту проблему, я разделил тестовые прогоны для каждой сборки, которая давала каждому тестовому прогону свою собственную папку / Out для выходных DLL

mstest.exe /testcontainer:Tests.web.dll

mstest.exe /testcontainer:Tests.svcs.dll

mstest.exe /testcontainer:Tests.core.dll
...