我为我的解决方案创建了一个单元测试项目,并使用 Moles 来绕过所有数据读取。今天我启动所有测试时,最终结果是这样的错误“无法加载主机类型“Moles”:找不到密钥“Moles”。对于包含属性 HostType("Moles") 的每个测试。
我不明白问题的原因,因为我在三个月前使用 Moles,我从来没有遇到过这种问题。
谢谢!!!
我为我的解决方案创建了一个单元测试项目,并使用 Moles 来绕过所有数据读取。今天我启动所有测试时,最终结果是这样的错误“无法加载主机类型“Moles”:找不到密钥“Moles”。对于包含属性 HostType("Moles") 的每个测试。
我不明白问题的原因,因为我在三个月前使用 Moles,我从来没有遇到过这种问题。
谢谢!!!
这是一个非常古老的问题,提问者现在可能已经找到了解决方案,但由于这是 Google 中此错误的第一个结果之一,因此我发现了以下内容:
在运行依赖于 Moles 的 64 位测试时,我(和许多其他人似乎)遇到了这个问题。
首先,确保您安装了正确的“位数”痣。moles 框架有 x86 和 x64 版本。根据我的经验,安装在 64 位机器上的 32 位框架实际上看起来一切正常,但您的测试将无法运行。您可以在此处安装 64 位框架:
我建议在安装之前关闭 VS 2010,但我不知道它是否有任何区别。
接下来,以一种或另一种方式确保您的 Moles 托管测试在需要时使用 64 位。为此,我将测试主机保留为“默认”,但在测试项目的 AssemblyInfo.cs 文件中设置以下内容:
[assembly: MolesAssemblySettings(Bitness = MolesBitness.x64)]
然后,仅对于我想在 Moles 中运行的测试,我将此属性添加到测试方法中:
[HostType("Moles")]
在此之后,一切都对我有用。