在做WCF的单元测试时,测试代码如下:
/// <summary>
///MyFunction 的测试
///</summary>
// TODO: 确保 UrlToTest 特性指定一个指向 ASP.NET 页的 URL(例如,
// http://.../Default.aspx)。这对于在 Web 服务器上执行单元测试是必需的,
//无论要测试页、Web 服务还是 WCF 服务都是如此。
[TestMethod()]
[HostType("ASP.NET")]
[AspNetDevelopmentServerHost("D:\\SystemSoftware\\客户端框架\\MyLib.Service.MyTest", "/")]
[UrlToTest("http://localhost:4491/MyTestDataService.svc")]
public void MyFunctionTest()
{
MyTestDataService target = new MyTestDataService(); // TODO: 初始化为适当的值
string str = "002"; // TODO: 初始化为适当的值
string[] strArr = null; // TODO: 初始化为适当的值
DateTime startTime = new DateTime(2010,8,1); // TODO: 初始化为适当的值
DateTime endTime = new DateTime(2010,12,1); // TODO: 初始化为适当的值
OperationFeedback feedback = null; // TODO: 初始化为适当的值
DataSet actual;
actual = target.MyFunction(str, strArr, startTime, endTime, out feedback);
Assert.IsTrue(feedback.CorrectRunning);
}
执行测试,总是出现如下错误。
Web 请求“http://localhost:4491/MyTestDataService.svc”在未运行测试的情况下成功完成。这种情况会在为测试配置 Web 应用程序失败(处理请求时发生 ASP.NET 服务器错误)时或未执行任何 ASP.NET 页(URL 可能指向一个 HTML 页、一个 Web 服务或一个目录列表)时发生。在 ASP.NET 中运行测试要求 URL 解析为 ASP.NET 页,并且该页在 Load 事件发生之前一直正确执行。请求的响应连同测试结果一起存储在文件“WebRequestResponse_MyFunctionTest.html”中,通常可使用 Web 浏览器打开此文件来查看其内容。
http://localhost:4491/MyTestDataService.svc,已经运行,是可访问的。
------解决方案--------------------
再顶一次。
------解决方案--------------------
http://www.360doc.com/content/11/0223/17/3877783_95473700.shtml
这是原文链接
按属性名来理解,HostType设定的是主机类型,AspNetDevelopmentServerHost指定的是项目的路径,而 UrlToTest指定的是发送请求到WebService的Url,导致上述错误出现的问题也在此。因为HostType属性指定了主机的类型是 ASP.NET,则UrlToTest属性必须可以被解析为ASP.NET页。在运行测试的时候,正是该页面向WebService发送请求。</p>
<p>  在Visual Studio自动创建的代码中,UrlToTest的值通常是Web项目的Url,该Url默认是会指向项目中的Default.aspx页面,具体情况视ASP.NET服务器的配置而定。所以,如果你所建的项目中没有Default.aspx的话,直接运行测试的时候则会出现上述错误。所以我们必须把 UrlToTest的值改成一个可被解析为ASP.NET的页。</p>
<p> </p>
<p>