如何调试使用Microsoft Moles框架的单元测试

时间:2011-04-01 13:29:39

标签: .net unit-testing debugging moles

我们的团队正致力于为.Net项目编写单元测试。我们使用“Visual Studio 2010”IDE,“NUnit”(v.2.5.9)单元测试框架和“Microsoft Moles”类型隔离框架。

我们遇到了一个问题:我们无法调试使用Moles的单元测试(而不使用它的测试没有问题)。使用Moles的测试失败,并显示以下错误消息:

  

Microsoft.Moles.Framework.Moles.MoleInvalidOperationException:Moles要求测试处于检测过程中。

有没有人知道为什么那些测试的调试不起作用? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

来自Moles手册:

<强>装配

Microsoft.Moles.NUnit.dll 您必须通过在NUnit bin / addins 文件夹中复制Microsoft.Moles.NUnit.dll程序集来向NUnit注册该加载项。

NUnit版本

2.5.2.9222(对于其他NUnit版本,从源代码重新编译属性)

使用示例

using NUnit.Framework; 
using Microsoft.Moles.Framework.NUnit;
[TestFixture]
public class NUnitTest
{
    [Test]
    [Moled] // set up of the mole context around the test case
    public void TestWithMoles() {
        ...
    }

    // alternative not using [Moled]
    [Test]
    public void TestWithMoles() {
        using(MolesContext()) { // clears moles leaving context
            ...
        } 
    }
}

命令行

确保在调用NUnit控制台运行程序时使用/ domain = None参数。

moles.runner.exe /r:nunit-console.exe /args=”/domain=None” ..