在Visual Studio 2012中使用微软Moles技术

3
我有一个使用 Microsoft Moles 进行测试的 Visual Studio 2010 解决方案(.Net3.5),我在 Visual Studio 2012 中打开它并编译成功,但是我无法从 Visual Studio 中运行测试。原因是Moles主机适配器未在 vs2012 中注册。所以所有带有 [HostType("Moles")] 的测试方法都会失败,并显示以下异常信息:
消息:UTA034: CreateSite_MockProperties_Passes 具有无效的 HostType 属性。 必须指定有效的、已注册的主机类型。
有人找到了如何在 Visual Studio 2012 中注册主机适配器的方法吗?

2012年缺乏Moles支持,可能会鼓励使用官方发布的Fakes框架。有趣的问题。我会研究一个解决方案。 - Mike Christian
谢谢Mike,不幸的是我买不起Ultimate SKU,但我真的很喜欢VS2010中的Moles。我看了另一种在VS2012中运行Moles的方法,通过External Tools和NUnit 链接。微软研究团队确认他们将发布PEX 2012版,我真的很喜欢在VS2010 IDE中同时使用这两个工具。由于我实际上正在使用.Net3.5项目,我认为更多的是注册Moles Host Adapter。 - JoeKir
2个回答

1

是的!我也看到了!太好了!反正我也没有时间去折腾它,但我很高兴我没有浪费时间,因为现在它已经出现了。 - Csaba Toth
当我想使用它时,我正在考虑仿造本地的打印、文件或网络等功能,这些功能我没有一个shim库(因为.NET的类非常方便,你不需要在其上面再加一层)。我猜那种用法还不错,但总的来说,有人应该谨慎地设计可测试的代码。 - Csaba Toth
当我在程序集引用的上下文菜单中看到“添加伪装程序集”时,我以为发现了“矩阵”中的一个故障。现在它得到了官方支持,这比它是个漏洞要好得多。 - Csaba Toth

0
我们必须想办法在Visual Studio 2012中安装那个主机适配器!

如果我想进一步了解这个问题,我会研究如何在VS2010中构建自定义测试主机适配器,然后再研究如何在VS2012中构建一个,观察注册差异和不同的接口要求。以下是一些可能对您有用的链接:编写Visual Studio 2012单元测试适配器 - 链接创建和使用主机适配器(VS2005-VS2010)- 链接 - JoeKir
如果有时间,我会深入研究这个问题。另一个想法是:也许我可以解析一下VS2011 beta版本中的内容。如果接口没有改变,我们只需要获取必要的dll文件,将它们放到正确的位置,然后在注册表、VS和一些配置中进行一些注册工作。或者甚至可能是一些VS2012 beta / RC版本。但我担心现在这些都已经过期了。 - Csaba Toth
我不确定 Host 适配器是否足够。当一切就绪后,它肯定会允许运行测试。更具体地说:我们将如何添加允许生成 Moles 组件的功能(右键单击时出现“添加 Moles 组件”)?这也由 Host 适配器提供吗?我只有在十二月底之后才有时间处理这个问题。 - Csaba Toth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接