当我尝试使用MVC3进行单元测试(Microsoft vs2010嵌入式测试框架)时,实例化控制器的所有单元测试都会抛出以下错误:
Test method CleanTestMVC.Tests.Controllers.HomeControllerTest.About threw exception:
System.Security.VerificationException: Operation could destabilize the runtime.
它似乎不是特定于项目的:我创建了一个新的MVC3项目,其中包含一个互联网应用程序模板和默认的自动生成的测试,并且这些测试也没有运行。我尝试在同事的机器上重新创建问题(相同的设置),他的机器似乎也产生了相同的问题。
没有为这些项目添加引用或外部库,但两台计算机都安装了TypeMock,虽然未在选项中引用和禁用(我听说有人将其归咎于类似问题)。
有人可以建议吗?解决方法和/或潜在原因?这是我第一次使用MVC3进行单元测试,周围没有人曾经使用MVC3,这是一个“豚鼠”项目。
感谢您的帮助!
更新:在我的家用电脑上尝试后,即使我也安装了TypeMock(试用版),一切都在那里工作。
更新2:问题的堆栈跟踪: System.Web.Mvc.Controller..ctor() CleanTestMVC.Controllers.HomeController..ctor() CleanTestMVC.Tests.Controllers.HomeControllerTest.About()
答案 0 :(得分:2)
好吧最后发现该公司安装了旧版本的Typemock,这与MVC3不兼容。通过Typemock禁用Typemock - >禁用Typemock实际上并没有“完全”禁用它,它必须在“tools / Addin Manager”中取消选中。将Typemock更新到最新版本后,问题就解决了。