当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《运行VisualStudioASP.NET单元测试时出错500错误》经验,为你挑选了2个好方法。

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

    [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)Not Found.远程服务器返回错误:(404)Not Found.

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

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

任何想法,将不胜感激.

更新1

根据本文,我的web.config文件中添加了以下内容.还使web.config可写并杀死/重新启动开发Web服务器.行为没有变化.


    
        
            
        
    

更新2

将AspNetDevelopmentServerHost属性更改为等效的[AspNetDevelopmentServerHost("%PathToWebRoot%\ solutionfolder\webfolder","/ webfolder")]解决了404问题.

不幸的是,测试开始返回500错误.进步,但并不多.使用干净的项目进行试验和错误得出的结论是,对web.config中的自定义类的引用导致了问题.

例如:

    
        
            
        
        
            
            
            
            
        
    

上面的标准类型被注释掉,测试运行良好.如果取消注释,则返回500错误.

过去任何人都有过类似的问题吗?



1> Igor Zevaka..:

我以前遇到过这个问题,并且在阅读了所有关于它的所有内容之后放弃了这个问题(包括这个帖子).

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

步骤1

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

[TestMethod]
public void TestMethod1()
{
    Page page = TestContext.RequestedPage;
    Assert.IsTrue(false, "Test ran, at least.");
}

第2步

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

替代文字

瞧,它可以作为正常的程序集进行检测,没有错误,不会启动开发服务器,也不会使Team Build失败.



2> hal9000..:

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


  
    
      
      
    
    
      
      
    
  

祝好运.

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有