使用Nunit,AutoFixture,NSubstitute和AutoSubstituteDataAttribute定义属性定义的测试数据

时间:2016-05-31 11:12:23

标签: c# testing nunit autofixture nsubstitute

我喜欢使用属性定义测试的选项。但是,我一定是做错了。我已经安装了包:

<packages>
  <package id="AutoFixture" version="3.46.0" targetFramework="net451" />
  <package id="AutoFixture.AutoNSubstitute" version="3.46.0" targetFramework="net451" />
  <package id="AutoFixture.NUnit3" version="3.46.0" targetFramework="net451" />
  <package id="NSubstitute" version="1.10.0.0" targetFramework="net451" />
  <package id="NUnit" version="3.2.1" targetFramework="net451" />
</packages>

单个替代参数通过:

[Theory, AutoSubstituteData]
public void Test_Single([Substitute] Service svc)
{
     // executed, shown as success
}

混合替换和其他一些值失败时:

[Theory, AutoSubstituteData]
public void Test_Mixed(int version, string name, [Substitute] IService svc)
{
     // not executed, shown as inconclusive
}

属性:

public class AutoSubstituteDataAttribute : Ploeh.AutoFixture.NUnit3.AutoDataAttribute
{
    public AutoSubstituteDataAttribute()
        : base(new Fixture().Customize(new AutoConfiguredNSubstituteCustomization()))
    {
    }
}

测试输出说:

  

NUnit Adapter 3.0.10.0:测试执行完成

     

测试适配器发回一个未知测试用例的结果。忽略'Test_Mixed(150,“name04f0cd50-e89f-4a8f-db6-dab69b58e98e”,Castle.Proxies.IServiceProxy)'的结果。

如何在VS2015中或在NUnit 3x中使用它?

1 个答案:

答案 0 :(得分:1)

(来自评论:)

这看起来像NUnit 3 Visual Studio测试适配器的问题。如果我使用NUnit 3命令行运行程序运行这些测试,它们都会运行并通过。

相关问题