NUnit в Visual Studio 2017 (Enterprise): Test Runner работает только как расширение, а не пакет решения NuGet?

Моя проблема очень похожа на NUnit Unit тесты не отображаются в обозревателе тестов с установленным тестовым адаптером, поскольку я не мог заставить тесты NUnit отображаться в обозревателе тестов (несмотря на многочисленные перестройки, установка Проверить 64-разрядную архитектуру и т. д.). Я пересобирал и пересобирал, и, несмотря на то, что в моем решении были установлены NUnit 3 и NUnit 3 Test Runner (через Инструменты -> Диспетчер пакетов NuGet -> Управление пакетами NuGet для решения...), я не смог получить тесты.

По совету другого ответа на приведенный выше вопрос я установил NUnit 3 Test Runner в качестве расширения (которое изменило все Visual Studio, а не только мой проект).

После того, как расширение установлено (и я выполняю Yet Another Rebuild :)), все мои тесты отображаются в обозревателе тестов.

Вопрос. Почему тесты отображаются в обозревателе тестов для расширения средства выполнения тестов NUnit 3 для всей Visual Studio, но НЕ в NuGet средства выполнения тестов NUnit 3 для конкретного решения упаковка?

Что еще более странно, так это то, что точно такой же проект с пакетами NuGet для каждого решения для NUnit прекрасно работает на моем персональном компьютере (БЕЗ установленных расширений NUnit) с использованием Visual Studio 2017 Community edition. Эта проблема возникает только тогда, когда я архивирую проект и отправляю его по электронной почте на другой компьютер (на котором работает Visual Studio 2017 Enterprise).

Я бы предпочел установить NUnit в решение, чтобы я мог раздавать копии своим ученикам и чтобы проект был полностью автономным.

Есть ли у кого-нибудь какие-либо советы о том, как глубже разобраться в проблеме с пакетом NuGet для каждого решения? Я немного в тупике, так как единственная очевидная вещь, которую нужно попробовать, это «перестроить его снова и посмотреть, поможет ли это» :), поэтому любые мысли о том, что можно попробовать / какие стратегии использовать, были бы замечательными.


person MikeTheTall    schedule 23.10.2017    source источник
comment
Насколько я знаю, NuGet добавляет библиотеки DLL в ваш проект. Вам нужен сам адаптер для фактического запуска тестов с использованием Nunit, установленного так же, как и вы (и, возможно, вы установили его раньше в своей версии сообщества — проверьте диспетчер пакетов NuGet, чтобы проверить). Поэтому имеет смысл, что если вы заархивируете проект, адаптер не будет перемещен вместе с ним, поскольку он является расширением IDE. Мое предложение состояло бы в том, чтобы сказать вашим ученикам, чтобы они сами установили расширение (это легко сделать с помощью диспетчера пакетов NuGet).   -  person Sam    schedule 23.10.2017
comment
Я могу быть сбит с толку этим - я думал, что расширение Visual Studio изменило локальную установку самого VS, а это означает, что все пользователи на одном компьютере для всех своих проектов имели доступ к функциям. Я думал, что пакет NuGet, установленный в решение, изменил проект и только этот проект. Он «следовал» за проектом (поскольку он является частью проекта), и, следовательно, все его функциональные возможности также должны идти вместе с ним. Разве это не так?   -  person MikeTheTall    schedule 23.10.2017
comment
Если вы загрузили адаптер Nunit из расширений, он должен повлиять на VS локально для всех пользователей. Вы устанавливаете это на компьютер, доступный для студентов, или на свой личный компьютер? В любом случае, у адаптера Nunit также есть NuGet, который устанавливает/добавляет DLL адаптера к решению, которое вы, возможно, ищете в ZIP и передаете своим ученикам. Попробуйте загрузить оба пакета NuGet: адаптер и сам nunit и убедитесь, что он добавляет их в папку «solution»/«project»/packages. Затем вы можете отправить его, не беспокоясь об установке расширений.   -  person Sam    schedule 24.10.2017
comment
Мы настоятельно рекомендуем использовать пакет NuGet вместо расширения. Microsoft отказывается от расширений для тестового адаптера, поскольку они не поддерживают мультитаргетинг и .NET Core. Ясно, что есть проблема с вашей настройкой, и это может занять некоторое время, чтобы помочь вам. Это, вероятно, не лучшее место для решения этой проблемы. Пожалуйста, введите и выдайте на github.com/nunit/nunit3-vs-adapter/issues и мы можем помочь вам в этом.   -  person Rob Prouse    schedule 24.10.2017
comment
Кроме того, если вы загрузите заархивированный проект сюда или прикрепите его к тикету на github (@ссылка RobProuse выше), мы можем проверить это для вас.   -  person Terje Sandstrøm    schedule 26.10.2017
comment
Ух ты! Спасибо за помощь, @RobProuse и @Terje-Sandstrom! Я пойду запишусь и прикреплю .ZIP файл!   -  person MikeTheTall    schedule 26.10.2017


Ответы (1)


На данный момент похоже, что виртуальная машина, на которой я запускаю тесты, думает, что проект запускается с сетевого диска. .Net имеет другие правила для удаленного запуска кода и по умолчанию не хочет выполнять удаленный код (что кажется разумным :)).

Стоит отметить, что NUnit должен (и работает!) прекрасно работать на виртуальной машине, где проект сохраняется на виртуальном диске — проблема возникает только из-за «сетевого диска»/общего доступа к файлам.

person MikeTheTall    schedule 26.10.2017