Ошибка AutoDixture AutoData - аргументы не предоставлены

Я пытаюсь использовать функцию AutoData в AutoFixture для моих тестов NUnit следующим образом:

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

Тем не менее, я получаю следующую ошибку при запуске теста. Все остальное в тесте работает правильно, пока я не передам этот параметр:

Сообщение о результате: аргументы не предоставлены.

Что я делаю неправильно?

2 ответа

Решение

Как ни странно, кажется, что пакет NUnitTestAdapter несовместим с атрибутом AutoFixture AutoData... Я установил TestDriven.Net и запустил с ним тесты, и AutoData работает отлично, без проблем передавая параметры в метод.

Спасибо за все ваши ответы!

Убедитесь, что вы установили последнюю версию пакета NuGet NUnit (2.6.3) в свой тестовый проект. Если вы используете собственный бегунок NUnit (консоль или графический интерфейс), также убедитесь, что вы используете его последнюю версию (2.6.3)

Затем, если в вашем тестовом проекте установлен пакет AutoFixture.Nunit2 и вы используете последнюю версию NUnit 2.6.3 и Resharper по крайней мере 8.1, вам нужно вручную добавить перенаправление привязки в файл 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>

С другой стороны, проверьте, добавили ли вы следующий класс в ваш проект тестов (должен быть добавлен во время установки пакета 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 (консоль и графический интерфейс), и это прекрасно работает.

Другие вопросы по тегам