自动混合AutoData错误 - 未提供任何参数

时间:2014-11-30 15:27:42

标签: .net nunit moq autofixture

我试图通过以下方式在AutoFixture中使用AutoData功能进行NUnit测试:

[Test]
[AutoData]
public void PharmaciesAndDelegatesShouldBeLinkedEachOther(string s) {
    ...
}

但是,我在运行测试时收到以下错误。只要我没有通过该参数,测试中的其他所有内容都能正常工作:

  

结果消息:未提供任何参数。

我做错了什么?

2 个答案:

答案 0 :(得分:8)

确保在测试项目中安装了最新版本的 NUnit(2.6.3) NuGet包。如果您使用的是本机NUnit运行程序(控制台或GUI),还要确保使用的是最新版本(2.6.3)

然后,如果您在测试项目中安装了 AutoFixture.Nunit2 软件包,并且使用最新的NUnit 2.6.3和Resharper版本至少8.1,则需要手动将绑定重定向添加到<测试项目的em> app.config 文件(如 readme.txt 文件中所述, AutoFixture.Nunit2 软件包安装后打开的文件):< / p>

<dependentAssembly>
    <assemblyIdentity name="nunit.core.interfaces" publicKeyToken="96d09a1eb7f44a77" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.6.3.13283" newVersion="2.6.3.13283" />
</dependentAssembly>

如果您在测试项目中没有 app.config 文件,请添加一个,并粘贴以下内容:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
          <assemblyIdentity name="nunit.core.interfaces" publicKeyToken="96d09a1eb7f44a77" culture="neutral" />
          <bindingRedirect oldVersion="0.0.0.0-2.6.3.13283" newVersion="2.6.3.13283" />
      </dependentAssembly> 
    </assemblyBinding>
  </runtime>
</configuration>

Aferward,检查您是否在测试项目中添加了以下类(应在 AutoFixture.Nunit2 包安装期间添加 LocalAddin.cs 文件)

using NUnit.Core.Extensibility;

namespace Test.Project
{
    [NUnitAddin]
    public class LocalAddin : Ploeh.AutoFixture.NUnit2.Addins.Addin
    {   
    }
}

这就是全部。我正在使用VS2013,NUnit 2.6.3,AutoFixture.Nunit2 3.21.1,Resharper测试跑步者和本机NUnit跑步者(控制台和GUI),它运行良好。

答案 1 :(得分:2)

奇怪的是,似乎NUnitTestAdapter包与Autofixture AutoData属性不兼容......我安装了TestDriven.Net并用它运行测试并且AutoData工作正常,将参数提供给方法没有问题。

感谢您的所有答案!