为System.Data添加moles程序集失败

时间:2013-03-06 11:42:10

标签: mocking moles

我在其中一个单元测试项目(VS 2010单元测试)中使用Microsoft Moles Framework(x86)版本0.94.51023.0。为了测试应用程序中的数据访问层方法,我尝试为 System.Data.dll 添加moles程序集,以便我可以模拟SqlConnection& SqlCommand个对象。当我在添加moles程序集时构建单元测试时,构建失败并显示以下错误详细信息

error CS0234: The type or namespace name 'SqlCredential' does not exist in the namespace 'System.Data.SqlClient'

error CS0234: The type or namespace name 'ApplicationIntent' does not exist in the namespace 'System.Data.SqlClient'

我的构建输出窗口的结尾显示了这个:

error MSB3073: The command ""C:\Program Files (x86)\Microsoft Moles\bin\moles.exe" @...\UnitTests\obj\Debug\Moles\moles.args" exited with code -1002.

2 个答案:

答案 0 :(得分:1)

在替换“ C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework”中的“ System.Data dll ”后,问题似乎已得到解决。 NETFramework \ v4.0 “在” C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 <中找到版本“4.0.30319.17929” /强>”。看起来这个版本的dll中定义了SqlCredential类型,我能够成功地摧毁System.Data dll

答案 1 :(得分:0)

我遇到了这篇文章http://feherzsolt.wordpress.com/2013/02/13/moles-and-net-4-5/,它似乎有正确的解决方案来修复Moles无法为System。* dll生成moled程序集的问题。当.Net f / w 4.0和4.5安装在同一台机器上时,对于使用4.0 dll的项目,在moles文件中添加ReflectionOnly =“true”属性,解决了构建失败问题。