加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-17 02:47:31 所属栏目:安全 来源:网络整理
导读:今天使用VSTS的测试框架对ASP.NET构建单元测试,用了以前一些应用测试一下,一路下来,相当顺畅,但当我随便创建一个Web Service的时候,生成的测试代码却老是运行不下去,提示如下类似的错误: Web 请求“http://localhost:15495/”在未运行测试的情况下成功完成。

今天使用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上没有找到答案,望知道的大大告知小弟一声,不胜感激!?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读