在针对ASP.NET Web服务运行自动生成的测试时,某些测试失败并且“无法配置与asp.net的通信通道”

时间:2011-09-13 10:54:28

标签: asp.net web-services mstest

情景:

  • Visual Studio 2010,ASP.NET Web应用程序
  • 创建一个Web服务类,并为其提供一些WebMethod - 归因方法
  • 让Visual Studio自动生成方法的单元测试,方法是右键单击类定义并选择Create Unit Tests...
  • 请注意,每个测试的生成代码都包含以下样板:

    // TODO: Ensure that the UrlToTest attribute specifies a URL to an ASP.NET page 
    // (for example, http://.../Default.aspx). This is necessary for the unit test to 
    // be executed on the web server, whether you are testing a page, web service, or 
    // a WCF service.
    [TestMethod]
    [HostType("ASP.NET")]
    [AspNetDevelopmentServerHost("C:\\...\\ProjectName", "/")]
    [UrlToTest("http://localhost:59733/")]
    public void MethodNameTest()
    
  • 根据评论的要求,将Default.aspx添加到UrlToTest

    [UrlToTest("http://localhost:59733/Default.aspx")]
    
  • 在课程中运行所有测试

问题:

不一致,某些测试失败了

  

无法配置与ASP.NET的通信通道。未找到请求的服务

哪些测试失败以及哪些测试通过可能因运行而异。似乎没有失败的模式,但从来都不是所有成功运行的情况。

出了什么问题?

2 个答案:

答案 0 :(得分:3)

您在UrlToTest中指定的网页是否始终在加载时执行Response.Redirect?因为如果是的话,这就是你所看到的失败的原因。

UrlToTest中指定的网址更改为执行Response.Redirect的网页,并且您的测试应运行良好。

答案 1 :(得分:1)

通过Resharper单元测试运行器运行测试。这也解决了我的问题。这也避免了多次重新加载web.config并感觉更快。