【问题标题】:Unit tests fail when using Moles 0.94 and VS2012, "Hosting rules specify that the test type 'Unit Test' cannot run in the host adapter 'Moles'"使用 Moles 0.94 和 VS2012 时单元测试失败,“托管规则指定测试类型 'Unit Test' 无法在主机适配器 'Moles' 中运行”
【发布时间】:2012-11-10 18:13:16
【问题描述】:

我正在尝试使用 Moles 0.94 和 VS2012 运行一些单元测试,以准备迁移到 TFS 2012。
这些测试目前在 TFS 2010 构建服务器上运行良好。

我得到的第一个错误是:

无法加载主机类型“Moles”,原因如下: 找不到关键的“痣”。确保合适的主机 适配器已安装在机器上。异常没有 堆栈跟踪

我发现 Moles 安装程序没有在注册表中创建正确的条目,根据这篇文章中的评论:Test Fails Due to Moles Under 64-bit Process

我决定更新我的注册表,所以在 Visual Studio\11.0\ 下,主机适配器现在也在那里。它们在 10.0 之前只存在于此。

在我的 test.settings 文件中,我尝试了 Force 32 bitRun in 64 bit
我在 Assembly.cs 中添加了以下内容:

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

我现在收到以下错误:

托管规则指定测试类型“单元测试”不能在 主机适配器“鼹鼠”。要在“Moles”中运行此测试,请更改主机 规则。将默认测试主机用于无法在其中运行的测试 指定的主机适配器,更改测试设置。

任何帮助将不胜感激。

【问题讨论】:

    标签: unit-testing visual-studio-2012 moles pex


    【解决方案1】:

    请记住,在 Visual Studio 2012 中,Moles 框架已替换为 Fakes。以下是迁移方法:http://www.hoonzis.com/fakes-is-new-test-isolation-framework/

    【讨论】:

    • Moles 可以在 VS2012 中运行还是需要更换?
    • 从技术上讲,暴力破解是可能的,但你必须弄清楚如何去做。从法律上讲,您必须查看 EULA。
    • 啊,我想那是我的问题,我试图暴力破解它,但它似乎不起作用。你知道谁可能有吗?
    • 我曾尝试在 VS2012 上暴力破解 Moles,以解决像您这样的问题。我没有成功。似乎那里可能隐藏着框架版本限制控制。还是有可能的;我放弃了尝试有点太容易了(承认这是一件可怕的事情,但确实如此)。你看过这篇文章吗?它可能无法解决您的问题,但相关:research.microsoft.com/en-us/projects/moles/molesdev11.aspx
    • 仅供参考 - 最后替换/重构使用它的测试更容易
    猜你喜欢
    • 1970-01-01
    • 2011-08-22
    • 2011-05-05
    • 1970-01-01
    • 2013-06-26
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多