从AutoFixture / AutoMaq请求模拟时,NUnit忽略测试

时间:2014-04-05 15:41:49

标签: c# unit-testing nunit autofixture automoq

我正在使用NUnit AutoFixtureAutoMoqTheory属性。

这是我的测试方法,

[TestFixture]
public class TestClass
{
    [Theory, AutoMoqData]
    public void TestI(I i)
    { }

}

界面

public interface I
{ }

和属性

public class AutoMoqDataAttribute : AutoDataAttribute
{
    public AutoMoqDataAttribute()
        : base(new Fixture().Customize(new AutoMoqCustomization()))
    { }
}

当我构建我的解决方案时,会发现测试。当我运行测试时,以下内容被写入Output窗口:

NUnit 1.0.0.0 executing tests is started
Run started: [...].Test.dll
NUnit 1.0.0.0 executing tests is finished
Test adapter sent back a result for an unknown test case. Ignoring result for 'TestI(Mock<TestClass+I:1393>.Object)'.

使用xUnit.net时,上述测试运行正常。为什么不使用NUnit


我在测试项目中安装了以下Nuget包:

  • AutoFixture 3.18.1
  • AutoFixture.AutoMoq 3.18.1
  • Moq 4.2.1402.2112
  • NUnit 2.6.3
  • NUnitTestAdapter 1.0

我正在Visual Studio 2013 Professional中运行测试。我也尝试在单独的GUI运行器中运行测试,结果相同。

1 个答案:

答案 0 :(得分:3)

以下NUnit测试在Visual Studio 2013中使用TestDriven.Net加载项传递:

internal class AutoMoqDataAttribute : AutoDataAttribute
{
    internal AutoMoqDataAttribute()
        : base(
            new Fixture().Customize(
                new AutoMoqCustomization()))
    {
    }
}

public interface IInterface
{ 
}

public class Tests
{
    [Test, AutoMoqData]
    public void IntroductoryTest(IInterface i)
    {
        Assert.NotNull(i);
    }
}

内置测试运行器没有发现上述测试。这看起来像测试运行器中的一个错误。