我试图通过以下方式在AutoFixture中使用AutoData功能进行NUnit测试:
[Test]
[AutoData]
public void PharmaciesAndDelegatesShouldBeLinkedEachOther(string s) {
...
}
但是,我在运行测试时收到以下错误。只要我没有通过该参数,测试中的其他所有内容都能正常工作:
结果消息:未提供任何参数。
我做错了什么?
答案 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工作正常,将参数提供给方法没有问题。
感谢您的所有答案!