gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 14:41:11 25 4
gpt4 key购买 nike

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

    [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) 未找到。

该页面在浏览器中按其应有的方式工作,网址为: http://localhost:3418/Web/SysCoord/ChooseEPA.aspx .

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

任何想法,将不胜感激。

更新 1

根据本文将以下内容添加到我的 web.config 文件中。还使 web.config 可写并终止/重新启动开发 Web 服务器。行为没有变化。
<location path="VSEnterpriseHelper.axd">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>

更新 2

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

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

例如:
    <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 错误。

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

最佳答案

我之前遇到过这个问题,在阅读了我可以用谷歌搜索的所有内容(包括这个线程)后,我放弃了。

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

第1步

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

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

第2步

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

alt text

瞧,它作为正常程序集进行检测,没有错误,不会启动开发服务器,也不会使团队构建失败。

关于visual-studio - 运行 Visual Studio ASP.NET 单元测试时出现 500 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/260432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com