关于VSTS对WebService进行单元测试时遇到的问题

今天使用VSTS的测试框架对ASP.NET构建单元测试,用了以前一些应用测试一下,一路下来,相当顺畅,但当我随便创建一个Web Service的时候,生成的测试代码却老是运行不下去,提示如下类似的错误:

Web 请求“http://localhost:15495/”在未运行测试的情况下成功完成。这种情况会在为测试配置 Web 应用程序失败(处理请求时发生 ASP.NET 服务器错误)时或未执行任何 ASP.NET 页(URL 可能指向一个 HTML 页、一个 Web 服务或一个目录列表)时发生。在 ASP.NET 中运行测试要求 URL 解析为 ASP.NET 页,并且该页在 Load 事件发生之前一直正确执行。请求的响应连同测试结果一起存储在文件“WebRequestResponse_HelloWorldTest.html”中,通常可使用 Web 浏览器打开此文件来查看其内容。

找了好多原因,web.config,网站的路径,网页中的错误,什么都找过,都不见有什么不对劲的东西,正当我百思不得其解的时候,往以前做好的网站中添加Web Service的时候,再创建单元测试,竟然就顺利通过,再没有上面那段错误信息,认真的对比了一下测试代码,发觉唯一不同的就是新加的Web Service测试中自动封装了一个访问器Accessor进行访问,查看元数据代码:

using  Microsoft.VisualStudio.TestTools.UnitTesting;
using  System;

[Shadowing(
" ws1 " )]
public   class  ws1_Accessor : BaseShadow
{
    
protected static PrivateType m_privateType;

    [Shadowing(
".ctor@0")]
    
public ws1_Accessor();
    
public ws1_Accessor(PrivateObject __p1);

    
public static PrivateType ShadowedType get; }

    
public static ws1_Accessor AttachShadow(object __p1);
    [Shadowing(
"HelloWorld@0")]
    
public string HelloWorld();
}

也没有什么特别,我想没有这个封装也是可以,最后只好把目光放在那些测试的属性中去,我暂时用到的属性有这几个:

[HostType( " ASP.NET " )]
[AspNetDevelopmentServerHost(
" %PathToWebRoot%/ws_test2 " " /ws_test2 " )]
[UrlToTest(
" http://localhost/ws_test2 " )]
[DeploymentItem(
" app_code.dll " )]


其中AspNetDevelopmentServerHost只在用文件服务器的时候要用上,在IIS上运作就不需要,其后我还在IIS上调试过,问题依然如故.

再细看那段错误提示,其中说到"未执行任何 ASP.NET 页时发生",我想是不是HostType惹得祸,试着把它注释掉,测试竟然可以顺利运行了,问题暂时解决了,但纳闷的事又来了,屏蔽掉HostType属性,那么默认访问HostType又是什么,在MSDN上没有找到答案,望知道的大大告知小弟一声,不胜感激!
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值