首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >500运行Visual Studio ASP.NET单元测试时出错

500运行Visual Studio ASP.NET单元测试时出错
EN

Stack Overflow用户
提问于 2008-11-04 00:19:13
回答 12查看 18K关注 0票数 16

我的单元测试项目中有以下方法:

代码语言:javascript
复制
    [TestMethod]
    [HostType("ASP.NET")]
    [UrlToTest("http://localhost:3418/Web/SysCoord/ChooseEPA.aspx")]
    [AspNetDevelopmentServerHost("%PathToWebRoot%")]
    public void TestMethod1()
    {
        Page page = TestContext.RequestedPage;
        Assert.IsTrue(false, "Test ran, at least.");
    }

我得到了这个异常:

测试适配器“WebHostAdapter”在运行测试“TestMethod1”时引发异常。无法正确配置网站;获取ASP.NET进程信息失败。请求'http://localhost:3418/SysCoord/VSEnterpriseHelper.axd‘返回错误:远程服务器返回错误:(404)找不到。远程服务器返回错误:(404)未找到。

该页面在浏览器中的url:http://localhost:3418/Web/SysCoord/ChooseEPA.aspx处正常工作。

此物理路径为: C:\ESI\HR_Connect2\BenefitChangeSystem\Application_DEV\Web\SysCoord.

任何想法都将不胜感激。

更新1

根据本文,在我的web.config文件中添加了以下内容。还将web.config设置为可写,并终止/重新启动开发web服务器。没有行为上的改变。

代码语言:javascript
复制
<location path="VSEnterpriseHelper.axd">
    <system.web>
        <authorization>
            <allow users="*"/>
        </authorization>
    </system.web>
</location>

更新2

将AspNetDevelopmentServerHost属性更改为AspNetDevelopmentServerHost("%PathToWebRoot%\solutionfolder\webfolder",的等价物"/webfolder")解决了404问题。

不幸的是,测试开始返回500错误。有进步,但不是很多。通过对一个干净项目的反复试验得出的结论是,在web.config的中引用自定义类是导致问题的原因。

例如:

代码语言:javascript
复制
    <profile enabled="true" defaultProvider="MyProfileProvider">
        <providers>
            <add name="MyProfileProvider" connectionStringName="ProfileConnectionString" applicationName="/MyApp" type="System.Web.Profile.SqlProfileProvider"/>
        </providers>
        <properties>
            <add name="Theme" type="String" defaultValue="Default"/>
            <add name="LastLogon" type="DateTime"/>
            <add name="LastLogonIp" type="String"/>
            <!--
            <add name="EmployeeSearchCriteria" type="MyApplicationFramework.Profile.EmployeeSearchCriteria"/>
            <add name="DocumentSearchCriteria" type="MyApplicationFramework.Profile.DocumentSearchCriteria"/>
            -->
        </properties>
    </profile>

使用上面注释掉的标准类型,测试运行得很好。在它们未注释的情况下,返回500错误。

有人在过去遇到过类似的问题吗?

EN

回答 12

Stack Overflow用户

发布于 2010-10-21 12:48:51

我以前也遇到过这个问题,在阅读了所有我能搜索到的关于它的文章(包括这个帖子)后,我放弃了。

在我的例子中,解决方案很简单。我所要做的就是不使用MVC测试属性,而只是将ASP.NET项目作为一个DLL进行测试。

第一步

从测试中删除额外的属性。

代码语言:javascript
复制
[TestMethod]
public void TestMethod1()
{
    Page page = TestContext.RequestedPage;
    Assert.IsTrue(false, "Test ran, at least.");
}

第二步

在代码覆盖率中,取消选中MVC项目,然后手动添加MVC项目的DLL。

瞧,它就像一个普通的程序集一样,没有错误,不会启动Development Server,也不会使Team Build失败。

票数 15
EN

Stack Overflow用户

发布于 2010-08-19 03:14:25

我发现使用vs2010并不局限于仅限于4.0个应用程序。但是,我确实发现,如果测试web应用程序,并且您使用的是旧的System.Web.Extensions版本重定向,您可能会得到一个错误。从Web.config文件中删除以下部分修复了我的问题:

代码语言:javascript
复制
<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" appliesTo="v2.0.50727">
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
      <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
      <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
    </dependentAssembly>
  </assemblyBinding>
</runtime>

祝好运。

票数 8
EN

Stack Overflow用户

发布于 2009-02-27 20:15:45

我遇到了和你一样的问题,但是我的经历有点不同。

我在vista x64上,我的开发人员在xp x64...they上没有任何问题。我刚刚升级,无法为asp.net MVC项目运行任何单元测试。我收到了和你收到的相同的500错误。

我关闭了代码覆盖,一切都神奇地开始工作了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/260432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档