在尝试使用ReSharper的测试运行程序在调用WCF服务时运行我的MSTest单元测试时,我遇到了一个奇怪的错误:
测试方法MyProject.UnitTests.InvalidZipTest抛出异常: System.ServiceModel.CommunicationException:序列化消息体时出错:'生成XML文档时出错。'。有关更多详细信息,请参阅InnerException。
---> System.InvalidOperationException:生成XML文档时出错。
---> System.InvalidCastException:[A] MyService.ZipSearch.Request无法强制转换为[B] MyService.ZipSearch.Request。类型A源自位于'C:\ Development \ MyProject.UnitTests \ bin \ Debug \ MyProject.UnitTests.dll'的上下文'LoadNeither'中的'MyProject,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'。类型B源自'MyProject,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'在上下文'Default'位置'C:\ Users \ jrose \ AppData \ Local \ Temp \ twt3nlrb.kfo \ MyProject.UnitTests \组件\ DL3 \ 2eb85aa1 \ 83973aea_0031cc01 \ MyProject.DLL”。
当通过MSTest的测试运行器运行测试时,测试运行正常而不会抛出此异常。
当通过不涉及此WCF调用的ReSharper测试运行器运行测试时,测试运行正常。
同事也会遇到同样的问题。
我正在运行ReSharper 5.1.1766.4和Visual Studio 2010 v.10.0.40219.1 SP1Rel。
我相信这是我能想到的所有相关信息,但如果还有其他任何我没想到的可能会有所帮助,请告诉我。
提前致谢。
答案 0 :(得分:1)
看起来测试项目和服务之间的dll版本之间存在一些问题。
您的测试如何参考该服务?是通过直接引用dll和amp;配置还是通过添加服务参考?
首先,在resharper的选项中尝试在运行测试时启用/禁用卷影副本(我认为禁用)