【问题标题】:Autofixture AutoData error - No arguments were providedAutofixture AutoData 错误 - 未提供任何参数
【发布时间】:2014-11-30 15:27:42
【问题描述】:

我正在尝试通过以下方式将 AutoFixture 中的 AutoData 功能用于我的 NUnit 测试:

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

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

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

我做错了什么?

【问题讨论】:

  • 您是否在通过 NuGet 安装和使用 AutoFixture.NUnit2 后遇到此行为?
  • 是的,我通过 Nuget 安装了 AutoFixture.Nunit2,版本 3.21.1
  • 如何运行上述测试? (例如使用TestDriven.Net插件、ReSharper等)
  • 我正在使用带有 NUnit 测试适配器包的 Visual Studio 2013 测试运行程序。我会试试 TestDriven.Net 看看它是否正常工作。

标签: .net nunit moq autofixture


【解决方案1】:

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

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

<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),效果很好。

【讨论】:

    【解决方案2】:

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

    感谢您的所有回答!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-04
      • 1970-01-01
      • 2021-08-10
      • 1970-01-01
      相关资源
      最近更新 更多