我的单元测试项目中有以下方法:
[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.");
}
Run Code Online (Sandbox Code Playgroud)
我得到了这个例外:
测试适配器'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服务器.行为没有变化.
<location path="VSEnterpriseHelper.axd">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
更新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"/>
--> …Run Code Online (Sandbox Code Playgroud)