首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MSTest代码覆盖

MSTest代码覆盖
EN

Stack Overflow用户
提问于 2010-06-07 11:32:20
回答 3查看 5.2K关注 0票数 3

我有一个web服务的测试项目,当我在调试模式下运行测试时,一切正常。然而,当我只是运行测试时,我得到了以下错误,对于一个引用的程序集,我试图获得代码覆盖率:

类初始化方法WebServiceTest.wstest.MyClassInitialize抛出异常。System.IO.FileLoadException: System.IO.FileLoadException:无法加载文件或程序集'TestAssembly、Version=1.0.0.0、Culture=neutral、PublicKeyToken=57f286581e1d278a‘或其依赖项之一。强名称验证失败。( HRESULT: 0x8013141A除外)--> System.Security.SecurityException:强名称验证失败。(HRESULT除外: 0x8013141A)。我发现的所有关于在GAC注册TestAssembly的信息。这就是我该做的吗?为什么它在调试模式下工作?谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-19 09:28:39

我也遇到了同样的问题,下面的链接帮助了我.

http://weblogs.asp.net/soever/archive/2005/07/23/420338.aspx

VS.NET 2005:我目前正在使用VS.NET 2005开发一个应用程序集的代码覆盖率,而且由于所有的TDD工具(如单元测试和代码覆盖)都可用,所以我开始使用它们。

当我开始对已签名的应用程序进行代码覆盖时,我得到了以下异常:

测试方法X抛出异常: System.IO.FileLoadException:无法加载文件或程序集'Y、Version=1.0.0.0、Culture=neutral、PublicKeyToken=Z‘或其依赖项之一。HRESULT: 0x8013141A强名称验证失败。-> System.Security.SecurityException:来自HRESULT的异常: 0x8013141A强名称验证在X.

如果你想一想,就不会那么奇怪了。程序集已签名,代码覆盖率需要代码检测,意味着程序集的修改,导致程序集不正确,因此验证失败。

解决办法是在仪表安装后辞职装配。

如果在解决方案项中打开localtestrun.testrunconfig文件(或类似的文件)(双击它),则可以在“代码覆盖率”部分启用辞职。这解决了问题。

票数 5
EN

Stack Overflow用户

发布于 2011-05-10 18:23:18

还可以通过执行以下命令,简单地禁用特定机器上所有签名的程序集检查:

代码语言:javascript
复制
sn.exe -Vr *

但是,小心使用,因为这会打开一个安全漏洞。我们在为我们测量覆盖率的内部虚拟机上使用这种方法。查看一下sn.exe的使用情况,因为可以缩小该命令的范围。

票数 4
EN

Stack Overflow用户

发布于 2014-11-26 20:23:11

我正在和VS.Net终极2012公司合作

这个解决方案帮了我:

右键单击Test > properties-> Build >开关生成序列化程序集到off->已完成

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2989037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档