我目前正在使用Microsoft Visual Studio 2012和新的Fakes框架。在将我的单元测试添加到MSBuild和持续集成过程之后,Fakes单元测试恰好引发了ShimNotSupportedException。
我尝试了不同的东西并阅读了这个问题并发现,这只发生在我从Resharper功能运行我的测试时,或者直接在使用MSTest的代码中运行。从测试菜单栏运行时不会发生这些异常,这使我考虑检查此功能的设置文件。
经过进一步的研究后,我发现一些文章说它可能与Resharper或MSTest设置中指定的代码覆盖率设置有关,如果你关闭它,它就解决了这个问题。 ShimNotSupportedException in MS VisualStudio 2012也涉及到这个问题。
我还在MSDN上找到了有关该问题的一些输入,这确认了我必须对代码覆盖率执行某些操作:http://social.msdn.microsoft.com/Forums/en-US/vstest/thread/17fcfdc6-1cda-4692-a242-656b48195327/和http://social.msdn.microsoft.com/Forums/en-US/vstest/thread/bfa792b0-b3fc-4a51-b49d-f7aaf1f2f4b8。
然而,由于我必须尽快将代码覆盖实现到持续集成过程中,并且跳过该部分不是一种选择,我现在在这里询问有关此问题的任何建议,以及是否有任何类型的解决方案那个问题!
感谢您的所有建议!
答案 0 :(得分:2)
MsTest不支持假货:http://msdn.microsoft.com/en-us/library/ms253138.aspx。
以下是如何从Team City运行Visual Studio Testrunner(支持Fakes):http://blog.degree.no/2012/09/unit-testing-visual-studio-2012-fakes-in-team-city/
如果使用TFS,也可以使用Visual Studio Testrunner。