1

我为我的解决方案创建了一个单元测试项目,并使用 Moles 来绕过所有数据读取。今天我启动所有测试时,最终结果是这样的错误“无法加载主机类型“Moles”:找不到密钥“Moles”。对于包含属性 HostType("Moles") 的每个测试。

我不明白问题的原因,因为我在三个月前使用 Moles,我从来没有遇到过这种问题。

谢谢!!!

4

1 回答 1

0

这是一个非常古老的问题,提问者现在可能已经找到了解决方案,但由于这是 Google 中此错误的第一个结果之一,因此我发现了以下内容:

在运行依赖于 Moles 的 64 位测试时,我(和许多其他人似乎)遇到了这个问题。

首先,确保您安装了正确的“位数”痣。moles 框架有 x86 和 x64 版本。根据我的经验,安装在 64 位机器上的 32 位框架实际上看起来一切正常,但您的测试将无法运行。您可以在此处安装 64 位框架:

痣 64 位框架

我建议在安装之前关闭 VS 2010,但我不知道它是否有任何区别。

接下来,以一种或另一种方式确保您的 Moles 托管测试在需要时使用 64 位。为此,我将测试主机保留为“默认”,但在测试项目的 AssemblyInfo.cs 文件中设置以下内容:

[assembly: MolesAssemblySettings(Bitness = MolesBitness.x64)]

然后,仅对于我想在 Moles 中运行的测试,我将此属性添加到测试方法中:

[HostType("Moles")]  

在此之后,一切都对我有用。

于 2013-10-28T18:40:11.663 回答