Ошибка 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 (консоль и графический интерфейс), и это прекрасно работает.