Moles 摩尔创建并不会创建所有对象
在尝试为一些单元测试创建一个mole时,我注意到一些函数没有被“mole”。某些函数出现在xxx.moles.xml文件中,而其他函数则没有 为了解决这个问题,我尝试重新安装“Pex和Moles”,删除MolesAssembly文件夹中的文件,重新启动计算机,等等 最后,我打开了一个控制台窗口,从命令提示符下运行moles.exe命令Moles 摩尔创建并不会创建所有对象,moles,Moles,在尝试为一些单元测试创建一个mole时,我注意到一些函数没有被“mole”。某些函数出现在xxx.moles.xml文件中,而其他函数则没有 为了解决这个问题,我尝试重新安装“Pex和Moles”,删除MolesAssembly文件夹中的文件,重新启动计算机,等等 最后,我打开了一个控制台窗口,从命令提示符下运行moles.exe命令 "c:\program files\microsoft moles\bin\moles.exe" assembly.dll /op:"MolesAssemblie
"c:\program files\microsoft moles\bin\moles.exe" assembly.dll /op:"MolesAssemblies" /msbuild:"c:\windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe"
我第一次运行此命令时,收到一条消息:
Moles:信息:编译:程序集元数据哈希未更改,
跳过代码生成
删除MolesAssemblies文件夹中的moles后,我再次运行moles.exe命令,我的所有函数现在都显示在xxx.moles.dll和xxx.moles.xml文件中
有人知道为什么在Visual Studio 2010内部构建时,mole生成不起作用,但在命令提示符下却可以完美地工作吗?我发现了问题……我以前修改过.moles文件,只添加了某些类。我只需要添加更多的“TypeName”,并包含了类/函数 使用moles.exe命令“工作”的原因是我没有使用.moles文件(我只是引用了程序集)。我更改了moles.exe的参数以包括.moles文件和程序集,结果与Visual Studio生成的输出相同。当我注意到代码的其他部分被破坏时,我意识到.moles文件是不正确的 我有过这样的经历
<Moles xmlns="http://schemas.microsoft.com/moles/2010/" >
<Assembly Name="Assembly.name" />
<StubGeneration>
<Types>
<Clear />
<Add FullName="Fullname_1_0" />
</Types>
</StubGeneration>
<MoleGeneration>
<Types>
<Clear />
<Add FullName ="Fullname_1_0" />
</Types>
</MoleGeneration>
</Moles>
我需要第二次“添加”
<Moles xmlns="http://schemas.microsoft.com/moles/2010/" >
<Assembly Name="Assembly.name" />
<StubGeneration>
<Types>
<Clear />
<Add FullName="Fullname_1_0" />
</Types>
</StubGeneration>
<MoleGeneration>
<Types>
<Clear />
<Add FullName ="Fullname_1_0" />
<Add TypeName="AdditionalClass"/>
</Types>
</MoleGeneration>
</Moles>
在修改已安装的组件后,确保重新构建测试项目。在测试项目上使用“clean”操作也可以解决此问题