Проблемы модульного тестирования VS2010 и ASP.NET / исключение WebHostAdapter - PullRequest
5 голосов
/ 19 апреля 2011

Я потратил полдня, пытаясь заставить работать модульный тест ASP.NET, как описано в Блог Алана по разработке . У меня не VS2008, а VS2010 с SP1 и Resharper 5.1, и, что бы я ни пытался, я просто сталкиваюсь с разными видами ошибок.

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

Обновлено, чтобы показать более подробную информацию об исключении

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

[TestMethod]
[HostType( "ASP.NET" )]
[UrlToTest( "http://localhost:49676/Default.aspx" )]
[AspNetDevelopmentServerHost( @"C:\...\Projects\ProjectX\ProjectX\", "/Default.aspx") ]
public void TestMethod1()
{

}

Я выполнил многочисленные поиски в Интернете относительно этого сообщения об ошибке, но так и не нашел решения - я попытался добавить раздел, чтобы всем пользователям был разрешен доступ к "VSEnterpriseHelper.axd", который также упоминается в сообщении об ошибке. , но это не помогло.

Попытка установить целевую платформу тестового проекта на .NET 3.5 также не помогает и возвращает ту же ошибку.

Во время игры с различными настройками я также получаю сообщение об ошибке, что сборка "Microsoft.VisualStudio.QualityTools.CommandLine" не может быть загружена, даже если я добавил правильную версию (с правильным токеном открытого ключа) для справки.

Может быть, комбинация вещей (ReSharper, целевая платформа .NET, ...) все портит, но я также пытался отключить модульное тестирование ReSharper, так что MSTest будет использоваться, к сожалению, безрезультатно.

Описание в блоге Алана кажется довольно простым, но оно не хочет работать для меня.

Обновление 2

Я также пытался запустить примеры проектов со страницы Алана в VS2008, но ошибка все та же, что и в VS2010 SP1.

Обновление 3

Все еще не повезло, но я добавил файл Microsoft.VisualStudio.Enterprise.AspNetHelper.dll (находится в % PROGRAMFILES% \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ PrivateAssemblies ) в файл web.config как ConfigurationErrorException в журнале событий Windows указывает, что этот файл не найден:

<dependentAssembly xmlns="urn:schemas-microsoft-com:asm.v1">
    <assemblyIdentityVersion name="Microsoft.VisualStudio.Enterprise.AspNetHelper" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <codeBase version="10.0.0.0" href="file:///C:/Program%20Files%20(x86)/Microsoft%20Visual%20Studio%2010.0/Common7/IDE/PrivateAssemblies/Microsoft.VisualStudio.Enterprise.AspNetHelper.dll" />
</dependentAssembly>

Это исправило проблему с AspNetHelper.dll, но я получаю то же сообщение об ошибке для AspNetAdatpter , но изменение web.config таким же образом не работает, так как ошибка сохраняется. В Visual Studio я также вижу, что (когда я пытаюсь добавить запись обработчика, как показано ниже), часть QualityTools.HostAdapters.ASPNETAdapter отображается красным, указывая во всплывающей подсказке «Не удается разрешить символ« QualityTools » «:

<add name="HostAdapter" verb="GET" path="ASPNETAdapter" type="Microsoft.VisualStudio.QualityTools.HostAdapters.ASPNETAdapter, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

Это все большой беспорядок, и кажется, что я полностью сбился с пути, почему кажется невозможным запускать модульные тесты ASP.NET в VS2010? Нет ли еще кого-нибудь, кто сталкивался бы с такими же проблемами (или, по-другому, задать вопрос, есть ли кто-нибудь, кто может без проблем запустить модульный тест ASP.NET в VS2010)?

Все еще пытаюсь заставить вещи работать ...

Обновление 4

Все еще не повезло, я один такой? Кто может проводить такие тесты?

Конец обновления

Есть идеи, что я здесь делаю не так? Заранее спасибо за любые указатели в правильном направлении

G.

Ответы [ 4 ]

0 голосов
/ 13 мая 2014

У меня похожая проблема, и единственное решение, которое я нашел до сих пор, - это изменение пула приложений на классический вместо интегрированного.

0 голосов
/ 06 февраля 2012

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

Но, к сожалению, в моем случае это не вариант.

0 голосов
/ 10 июля 2012

Я опоздал на год, но у меня была эта ошибка, и я быстро нашел Google. Все результаты говорят об отключении покрытия кода, но эта опция была недоступна для меня. Все, что я сделал, это проверил localhost порты, и у меня был неправильный, и все это работало нормально.

для тех, кто не знает, запустите пользовательский интерфейс проекта и проверьте процесс на панели задач. Вы можете навести курсор и проверить его или щелкнуть правой кнопкой мыши и показать детали.

Я изменил это, дважды щелкнув testsettings и изменив тип хоста на ASP.NET, а затем установив «URL для тестирования» на «http://localhost:49676/Default.aspx" номер порта, который нужно изменить, выделен жирным шрифтом. Однако вопрос в top используется тег "[UrlToTest (" http://localhost:49676/Default.aspx")] ". Я думаю, что это делает то же самое.

К вашему сведению, я разрабатывал C # чуть более года, извините, если я заявляю очевидное.

0 голосов
/ 13 августа 2011

Вы можете использовать Ivonna для тестирования Asp.Net.Дополнительные функции и более чистый синтаксис теста imo.

...