Атрибут определенных тестовых данных с Nunit, AutoFixture, NSubstitute и AutoSubstituteDataAttribute

Мне нравится возможность определять тесты с использованием атрибутов. Однако я, должно быть, делаю что-то не так. Я установил пакеты:

<packages>
  <package id="AutoFixture" version="3.46.0" targetFramework="net451" />
  <package id="AutoFixture.AutoNSubstitute" version="3.46.0" targetFramework="net451" />
  <package id="AutoFixture.NUnit3" version="3.46.0" targetFramework="net451" />
  <package id="NSubstitute" version="1.10.0.0" targetFramework="net451" />
  <package id="NUnit" version="3.2.1" targetFramework="net451" />
</packages>

Проходят одиночные заменяемые параметры:

[Theory, AutoSubstituteData]
public void Test_Single([Substitute] Service svc)
{
     // executed, shown as success
}

При смешивании замены и некоторых других значений происходит сбой:

[Theory, AutoSubstituteData]
public void Test_Mixed(int version, string name, [Substitute] IService svc)
{
     // not executed, shown as inconclusive
}

Атрибут:

public class AutoSubstituteDataAttribute : Ploeh.AutoFixture.NUnit3.AutoDataAttribute
{
    public AutoSubstituteDataAttribute()
        : base(new Fixture().Customize(new AutoConfiguredNSubstituteCustomization()))
    {
    }
}

Вывод теста говорит:

Адаптер NUnit 3.0.10.0: выполнение теста завершено

Тестовый адаптер отправил результат для неизвестного тестового случая. Игнорирование результата для «Test_Mixed (150, name04f0cd50-e89f-4a8f-db6-dab69b58e98e, Castle.Proxies.IServiceProxy)».

Как заставить это работать в VS2015 или вообще с NUnit 3x?


person Rbjz    schedule 31.05.2016    source источник
comment
Возможно ли вам использовать xUnit [v2]? Вы обнаружите, что вещи в значительной степени просто работают (и / или общие сообщения можно найти в Google и т. Д.).   -  person Ruben Bartelink    schedule 31.05.2016
comment
@RubenBartelink, теперь я установил xunit, включая xunit.runner.visualstudio версии 2.1.0, перезапустил VS, перекомпилировал. Добавленные тесты XUnit не отображались в обозревателе тестов. Пытался установить xunit.runners, но пишет нет поддержки net451. Это не очень похоже на то, что просто работает. Я бы предпочел исправить это с помощью NUnit, версия 3 — довольно приличная тестовая среда.   -  person Rbjz    schedule 31.05.2016
comment
Извините, вынужден рутить но если погуглить, почему xunit runner не находит мои тесты, там есть вопросы по устранению неполадок (один мой) - И извиняюсь за завышение - да могут все же проблемы. Однако я могу сказать одно: большинство людей, использующих AF с атрибутами, используют xUnit.   -  person Ruben Bartelink    schedule 31.05.2016
comment
@RubenBartelink, немного повозившись с версиями пакетов, я понял, что класс не помечен как общедоступный (не требуется в nunit). Теперь появляется тест XUnit, и если бы не первоначальная путаница, он просто работает зеленым... Единственные отличия от теста NUnit: Xunit.Theory и Ploeh.AutoFixture.XUnit2.AutoDataAttribute. Я все еще хотел бы работать с NUnit. Спасибо за вашу помощь в любом случае.   -  person Rbjz    schedule 31.05.2016
comment
Рад, что вы разобрались; stackoverflow.com/questions/16214684/why-is-the-xunit-runner-not-finding-my-tests/16214704#16214704: P   -  person Ruben Bartelink    schedule 31.05.2016
comment
Не совсем отсортировано, но хорошо сужено. Ваше здоровье.   -  person Rbjz    schedule 31.05.2016
comment
Хотя я могу воспроизвести эту проблему, похоже, что это проблема с тестовым адаптером NUnit 3 Visual Studio. Если я запускаю эти тесты с помощью средства запуска командной строки NUnit 3, они оба запускаются и проходят. Могу ли я предложить вам поднять вопрос о тестовом адаптере NUnit 3 Visual Studio?   -  person Mark Seemann    schedule 05.06.2016
comment
@MarkSeemann, спасибо. Возможно, он уже находится в разработке для другой ошибки: github.com/nunit/nunit3. -vs-adapter/issues/97 - симптомы и описание очень похожи, как вы думаете?   -  person Rbjz    schedule 07.06.2016
comment
@RobertCutajar-Robajz Я согласен, что это может быть та же проблема, и я также вижу, что вы опубликовали там, что я считаю хорошей идеей :)   -  person Mark Seemann    schedule 07.06.2016
comment
Если вы скажете, что это ошибка, я думаю, это будет приемлемый ответ.   -  person Rbjz    schedule 07.06.2016


Ответы (1)


(Из комментариев :)

Это похоже на проблему с тестовым адаптером NUnit 3 Visual Studio. Если я запускаю эти тесты с помощью средства запуска командной строки NUnit 3, они оба запускаются и проходят.

person Mark Seemann    schedule 04.01.2018