【问题标题】:Working with Microsoft Moles in Visual Studio 2012在 Visual Studio 2012 中使用 Microsoft Moles
【发布时间】:2012-09-23 13:09:11
【问题描述】:

我有一个使用 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,很遗憾我买不起 Ultimate SKU,但我真的很喜欢 VS2010 中的 Moles。我通过外部工具和 NUnit link 查看了在 VS2012 中运行 Moles 的另一种方法。 MS Research 团队确认他们将在 2012 年发布 PEX,我真的很喜欢在 VS2010 IDE 中同时使用这两个工具。由于我实际上正在使用 .Net3.5 项目,因此我认为它更像是注册 Moles 主机适配器的情况。

标签: visual-studio-2012 moles pex-and-moles


【解决方案1】:

对于 Moles 框架的粉丝来说,它看起来更加乐观。 我们知道,它的继任者“Fakes and Stubs”仅在 VS2012 Ultimate SKU 中提供。

不过,微软刚刚宣布,从 VS2012 Update 2 开始,Premium SKU 用户将能够使用 Fakes 和 Stubs。我对此很满意!!

http://blogs.msdn.com/b/bharry/archive/2013/01/30/announcing-visual-studio-2012-update-2-vs2012-2.aspx

【讨论】:

  • 是的!我也看到了!那太棒了!反正我没有时间去摆弄它,但我很高兴我没有浪费我的时间,因为它现在就在这里。
  • 当我想使用它时,我正在考虑伪造这样的本机打印、文件或网络或其他功能,我没有 shim 库(因为 .NET 的类可以如此方便你不需要任何层在上面)。我猜这种用法很好,但总的来说,有人应该小心设计可测试的代码。
  • 当我在装配参考的上下文菜单中看到“添加假货装配”时,我以为我在“矩阵”中发现了一个小故障。更好的是它不是一个错误,但它现在得到了官方支持。
【解决方案2】:

我们必须弄清楚如何在 Visual Studio 2012 中安装主机适配器!

【讨论】:

  • 如果我打算进一步研究这个问题,我会先了解如何在 VS2010 中构建自定义测试主机适配器,然后在 VS2012 中构建一个,观察注册差异以及不同之处接口要求。以下是一些可能对您有用的链接:Writing a Visual Studio 2012 Unit Test Adapter - link Creating and Using Host Adapters (VS2005-VS2010) - link
  • 如果我有时间,我会深入研究这个。另一个想法:也许我可以剖析一个 VS2011 测试版它在里面怎么样。如果接口没有变化,我们可以只获取必要的dll,把它们放到正确的地方,在registry和VS中做一些注册工作和一些配置。甚至可能是一些 VS2012 beta/RC。但恐怕这些现在都过期了。
  • 我只是不知道主机适配器是否足够。一旦一切就绪,它肯定会允许运行测试。更具体地说:我们将如何添加允许生成 Moles 程序集的功能(当您右键单击并出现“添加 Moles 程序集”时)?这也是主机适配器提供的吗?我只有在 12 月底之后才有时间。
猜你喜欢
  • 1970-01-01
  • 2012-08-22
  • 2015-08-03
  • 1970-01-01
  • 1970-01-01
  • 2012-10-12
  • 1970-01-01
  • 1970-01-01
  • 2014-11-20
相关资源
最近更新 更多