Почему Resharper не принимает мои тесты NUnit?

Недавно я перешел с MSTest на NUnit. Я сделал это

  • замена всех вхождений [TestMethod] на [Test], [TestClass] на [Test] и т. д.
  • Я также удалил ссылку на Microsoft.VisualStudio ... и добавил пакет nuget NUnit.framework.

С тех пор, как я это сделал, Resharper не показывает маленький значок тестирования рядом с методами. И если я запускаю тесты с помощью Ctrl + U, R, он показывает правильный счет, но на самом деле не запускает ни один из них.

Есть у кого-нибудь идеи?

Изменить: должно быть что-то напортачило с моей сборкой, потому что я создал новый просто под названием Test.Web и создал простой класс только с [TestFixture], и ​​Resharper мгновенно его распознал.


person taylonr    schedule 14.11.2011    source источник
comment
ни одно из решений не помогло. как ты это решил?   -  person Eakan Gopalakrishnan    schedule 12.08.2015
comment
Смотрите мой ответ ниже, вот что я сделал, чтобы решить эту проблему. По сути, создал новую библиотеку и скопировал код.   -  person taylonr    schedule 13.08.2015
comment
Убедитесь, что классы public.   -  person Rok Povsic    schedule 03.08.2017


Ответы (11)


У меня была такая же проблема, и я решил ее так:

  1. Перейдите в Параметры Resharper -> Инструменты -> Модульное тестирование -> Поставщики модульного тестирования.
  2. Отмените выбор чего-либо, кроме Nunit, и нажмите OK.
  3. Теперь он должен работать, и вы даже можете повторно выбрать провайдеров, которых вы отключили, и он все равно должен работать.
person Oren    schedule 18.04.2012
comment
+1 Не знаю почему, но сразу после установки dotCover флажок, указывающий на то, что NUnit активирован, был снят. - person Samuel; 26.03.2014
comment
В моем случае обнаружение xUnit было единственным препятствием. - person eglasius; 27.06.2018
comment
Должен иметь отношение к более старой версии Resharper. Сейчас нет флажков, которые можно было бы снять. - person Tom Bogle; 02.10.2020

Удаление файла .ReSharper.user из исходного каталога (в том же каталоге, что и файл решения) решило для меня ту же проблему.

person Michiel Overeem    schedule 16.12.2011
comment
В ReSharper 8.2.3 он называется .DotSettings.User. - person AJ Richardson; 26.08.2015

Возникла проблема со сборкой. Я не уверен что. Но я создал новую пустую библиотеку классов, установил NUnit, Should и Moq. Затем скопировал мои классы из предыдущей сборки в новую и voilá, все заработало.

person taylonr    schedule 14.11.2011
comment
Были ли методы тестирования отмечены модификатором публичного доступа и атрибутом [Test]? (извините за глупый вопрос) - person sll; 14.11.2011
comment
да. Как я уже сказал, он работал автономно в NUnit. Также работал, когда я копировал файлы в другой репозиторий. Это не было проблемой NUnit. - person taylonr; 15.11.2011

У меня была проблема, когда он по какой-то причине просто перестал работать.

Решение заключалось в том, чтобы выбрать Resharper-> Параметры-> Инструменты -> «Модульное тестирование» в каждом подпункте, таком как NUnit, вы перейдете и установите флажки для тестов, которые вы хотите поддерживать. Будет что-то вроде «Включить поддержку NUnit 3x».

Нравится:

введите описание изображения здесь

person Kostiantyn Korniyenko    schedule 04.04.2018

Для меня щелчок правой кнопкой мыши по имени класса тестовой оснастки и щелчок по пункту меню (не Resharper's) «Выполнить тесты» в Visual Studio заставили снова отобразить значки R #.


введите описание изображения здесь


P.S. Это было в Visual Studio 2017

person Antoni    schedule 11.02.2019

Это может произойти, когда тестовый класс настолько велик, что ReSharper приостанавливает анализ кода. Для этих файлов вы можете щелкнуть правой кнопкой мыши значок «пауза» над вертикальной полосой прокрутки редактора кода и выбрать «Продолжить анализ».

Анализ кода приостановлен, поскольку размер документа превысил пороговое значение

Это добавит ForceIncluded запись в .DotSettings.user файл решения, поэтому вам не нужно будет делать это снова:

<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=.../@EntryIndexedValue">ForceIncluded</s:String>
person Simon MᶜKenzie    schedule 31.07.2018

Я получил это, следуя предложениям по этому вопросу StackOverflow. Конкретно:

  • Добавить ссылку NuGet на Microsoft.NET.Test.Sdk
  • Обновить ReSharper
  • Перезапустите Visual Studio
person srk    schedule 20.08.2019

У меня возникла аналогичная проблема, и я определил, что подключаемый модуль MSpec мешает. Решено отключением средства запуска тестов MSpec: Resharper-> Options-> Plugins.

person jchadhowell    schedule 20.05.2012

Эта проблема может возникнуть, если у вас есть несколько тестовых проектов с несовпадающими версиями nunit, NUnit3TestAdapter и Microsoft.NET.Test.Sdk.

Когда я добавил новый тестовый проект к существующему решению, Visual Studio по умолчанию установила самые последние версии этих библиотек. Все тесты работали во встроенном в Test Explorer, но ReSharper не смог увидеть новый тестовый проект.

Чтобы исправить: щелкните правой кнопкой мыши решение в обозревателе решений, выберите «Управление пакетами NuGet для решения», затем перейдите на вкладку «Консолидировать». Выберите версию, которую вы хотите использовать для каждой из этих библиотек, и установите ее во всех тестовых проектах.

person Alistair Green    schedule 09.07.2020

Это происходило в одном решении с большим количеством проектов. (Я проверил, анализ не был приостановлен.) Запуск тестов во всех других моих решениях работал нормально. Я попытался добавить пакет тестового адаптера NUnit 3 во все свои проекты, но, поскольку я использую Resharper, я был почти уверен, что это ничего не исправит - этого не произошло. Наконец я обновился до последней версии Resharper. Установщик сказал, что это не удалось, но после этого Resharper снова смог увидеть мои модульные тесты. Трудно сказать, можно ли это квалифицировать как ответ, но, похоже, это то, что заставило меня снова заработать.

person Tom Bogle    schedule 02.10.2020

Обновите resharper до последней версии и добавьте расположение корневого каталога приложения в файл .testsettings.

Папка приложений

person Basil    schedule 29.03.2021