Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NUnit在从AutoFixture/AutoMQ请求模拟时忽略测试_C#_Unit Testing_Nunit_Autofixture_Automoq - Fatal编程技术网

C# NUnit在从AutoFixture/AutoMQ请求模拟时忽略测试

C# NUnit在从AutoFixture/AutoMQ请求模拟时忽略测试,c#,unit-testing,nunit,autofixture,automoq,C#,Unit Testing,Nunit,Autofixture,Automoq,我将NUnit与AutoFixture、AutoMoq和Theory属性一起使用 这是我的测试方法 [TestFixture] public class TestClass { [Theory, AutoMoqData] public void TestI(I i) { } } 接口 public interface I { } 属性呢 public class AutoMoqDataAttribute : AutoDataAttribute { publi

我将
NUnit
AutoFixture
AutoMoq
Theory
属性一起使用

这是我的测试方法

[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()))
    { }
}
当我构建解决方案时,就会发现测试。当我运行测试时,以下内容将写入输出窗口:

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)'.
NUnit 1.0.0.0开始执行测试
已启动运行:[…].Test.dll
NUnit 1.0.0.0执行测试完成
测试适配器发回未知测试用例的结果。忽略“TestI(Mock.Object)”的结果。
使用
xUnit.net
时,上述测试运行正常。为什么它不能与NUnit一起工作


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

  • 自动夹具3.18.1
  • AutoFixture.AutoMoq 3.18.1
  • 最低起订量4.2.1402.2112
  • NUnit 2.6.3
  • NunitestAdapter 1.0

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

以下NUnit测试通过了Visual Studio 2013中的外接程序:


内置测试运行程序没有发现上述测试。这看起来像是测试运行程序中的错误。

您使用的是哪个版本的NUnit,以及哪个测试运行程序?@NikosBaxevanis,相关问题。我已经用这些信息更新了帖子。很有趣!我将尝试TestDriven.Net。但正如我上面提到的,我的测试在独立的NUnit runner中也不起作用。您的测试可能未被发现,因为类上缺少
TestFixture
。我还注意到您使用的是
Test
而不是
Theory
,这是出于某种原因吗?属性用法来自安装NuGet软件包后生成的示例代码。现在我已经尝试了您的示例。正如您所提到的,它在TestDriven.Net中运行良好。关于属性,您也是正确的,[TestFixture]不再是必需的。除此之外,不幸的是,这并不能解决我的问题,因为我需要在构建服务器上使用NUnit runner运行测试。有关AutoFixture.NUnit2的大多数(如果不是全部)联机信息都可以找到并访问。如果您无法从这些URL中找到构建服务器的解决方案,您可以访问AutoFixture项目站点。谢谢,但是我的构建服务器没有问题。那里一切正常。我提到它只是为了解释为什么切换到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);
    }
}