Тестовые модули NUnit не отображаются в Test Explorer с установленным тестовым адаптером


145

Я установил тестовый адаптер NUnit для VS2012 + 2013. Когда я впервые установил адаптеры, тесты показывались, но по какой-то причине они прекратились сегодня. После сборки, перестройки, очистки, перезапуска в Test Explorer ничего не появляется. Почему это происходит? Я использую VS2013 Ultimate.


2
Попробуйте щелкнуть правой кнопкой мыши по вашему тестовому проекту и затем нажмите «Выполнить» Это снова заполнит окна тестами.
— Чейз Флорелл

@ChaseFlorell это не так. Я вижу зеленую полосу в Test Explorer, которая начинает работать, а затем останавливается на долю секунды позже.
— RobVious

У вас есть другие инструменты тестирования, которые могут мешать? Я использую R # для запуска своих тестов, и я использую VS2012, поэтому я недостаточно хорошо понимаю вашу среду. Я знаю, что когда я закрываю окно или запускаю небольшое подмножество тестов, полное дерево тестов исчезает.
— Чейз Флорелл

Вы можете попытаться выгрузить тестовый проект, перестроить, а затем снова загрузить его ...
— Чейз Флорелл

@ChaseFlorell У меня есть R #, но это медленно, как патока с тестами NUnit ... и это работало до того, что разочаровывает. Попробую разгрузить.
— RobVious

Ответы:


87

Если ваш тестовый проект настроен на 64-битную платформу, тесты не будут отображаться в тестовом адаптере NUnit.


54
Возможно, он должен соответствовать архитектуре, указанной в меню «Тест» -> «Настройки теста» -> «Архитектура процессора по умолчанию»
— Браннон

6
@ Брэннон Это делает. Если установлено значение x64, тесты в проектах x64 видны.
— Basic

2
Здесь произошло что-то более глупое - забыл добавить атрибут [Test] в мой метод тестирования :)
— Николай

Эта проблема по-прежнему присутствует в тестовом адаптере NUnit 3. См. Решение Simoyd относительно архитектуры тестового адаптера (x64 против x86).
— Барт

1
Это неверный ответ. Чтобы запустить тесты, выберите «Тест» -> «Настройки теста» -> «Архитектура процессора по умолчанию» -> «x64»
— Эндрю Рондо,

182

Если вы используете версию NUnit3 + , доступен новый тестовый адаптер.

Перейдите в «Инструменты -> Расширения и обновления -> Онлайн» и найдите «Тестовый адаптер NUnit3», а затем установите.


Дополнительные +1, потому что это также исправило проблему с исчезновением показателей покрытия кода.
— Aidanapword

Если прокси-сервер брандмауэра заблокировал URL-адрес с помощью расширений и обновлений, используйте этот URL-адрес для загрузки адаптера. marketplace.visualstudio.com/…
— Явар Муртаза

Обратите внимание, что вам также может потребоваться отключить тестовый адаптер NUnit2.
— Марк Паттисон

Какая разница между получением этого способа и получением от менеджера пакетов NuGet?
— Октавиан

Используя NuGet, вы получите доступ к API nunit. Используя этот способ, вы сможете запускать тесты в Test Explorer (по умолчанию он запускает только MS Test).
— Рикардо Франса

57

Моя тестовая сборка 64-битная. В строке меню в верхней части Visual Studio 2012 я смог выбрать «Тест» -> «Настройки теста» -> «Архитектура процессора по умолчанию» -> «X64». После «Восстановить решение» из меню «Сборка» я смог увидеть все свои тесты в проводнике тестов. Надеюсь, это поможет кому-то еще в будущем = D.


3
Обязательно проверьте архитектуру своих сборок и программ. Даже если платформу для вашего решения или проекта можно явно установить на x64, если ваша тестовая архитектура не соответствует, у вас будут проблемы с запуском тестов.
— Додзи Дзакума

30

Проверьте несоответствие версий NUnit. Доступный в настоящее время тестовый адаптер NUnit работает только для NUnit версии 2.6.4 и ниже. Чтобы понизить версию NUnit с версии 3.x, перейдите в Консоль диспетчера пакетов> пакет обновления NUnit -version 2.6.4.

http://jeremybytes.blogspot.co.ke/2015/11/review-of-unit-testing-makes-me-faster.html


6
Вы, сэр, точно решили мою проблему! Спасибо! Theres пакет nuget под названием NUnitTestAdapter.WIthFramework, который работает удовольствие!
— Ахемист

У меня была похожая проблема с несоответствием версий NUnit. Некоторые (но не все) мои тесты не отображались в Test Explorer, поэтому я попробовал всевозможные рекомендации, такие как обновление тестового адаптера NUnit. Ранее я обновил NUnit с 3.6.1 до 3.7.1, но по какой-то причине один из моих проектов все еще ссылался на версию 3.6.1 nunit.framework.dll, а все остальное ссылалось на 3.7.1. Я обновил ссылку на 3.7.1, и это помогло. Пока мои тесты не исчезли. Скрещенные пальцы!
— 17

23

В моей ситуации «Тестовый адаптер NUnit3» был отключен. Чтобы снова включить его перейдите в меню

Сервис-> Расширения и обновления ...

С левой стороны выберите «Установлено» -> «Все».

В верхнем правом углу найдите «nunit».

Если у вас установлен тестовый адаптер NUnit3, с помощью найденного элемента вы можете включить / отключить его.

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


2
Для меня это не сработало. Попытка удаления, и он сделал вид, что ушел, но он был там после перезагрузки. Я понял, что установил NUnit как обычный пользователь, а затем попытался удалить его как администратор. VS ничего не говорит об этом ... Поэтому решение состоит в том, чтобы попытаться включить его без прав администратора или наоборот.
— Том

10

Этот ответ кажется довольно простым, но поначалу он мне не совсем понятен. Если вы (пере) создаете решение, оно создает только те проекты, которые настроены дляBuild -> Configuration Manager

Это была моя проблема, я должен был случайно изменить параметры конфигурации сборки или что-то, из-за чего мои тестовые проекты не собирались (когда они были раньше). Таким образом, Test Explorerокно смотрело на dll, которые были устаревшими. Мне стало ясно, что это было после того, как я выполнил (а) Cleanи увидел, что большинство моих тестов исчезают и не возвращаются после rebuild... дальнейшего изучения binпапки показало, что эти проекты вообще не создавались.


Хотя все проекты были настроены на сборку в диспетчере конфигурации, мне пришлось вручную создавать каждый тестовый проект, чтобы тесты снова появлялись.
— Ноэль Видмер

Я вручную построил свои тестовые проекты. Этого было недостаточно. Я должен был сделать то, что сказал этот ответ.
— Джаред

10

У меня была рабочая установка (для NUnit2 и NUnit3 в зависимости от решения и нескольких версий Visual Studio в период между 2012 и 2017 годами), и она внезапно перестала работать в один прекрасный день: никаких тестов не обнаружено ни в одном решении или версии VS.

В моем случае это помогло удалить %localappdata%\Temp\VisualStudioTestExplorerExtensions. После перезагрузки VS все заработало как раньше.


10

Если вы используете VS 2017 и .NET ядро , как сказано здесь , вы должны добавить ссылки на испытательной базы NUnit 3.6.1 , на тест бегун NUnit3TestAdapter 3.8.0-альфа1 и тест SDK Microsoft.NET.Test.Sdk 15.0.0 .


3
Я не использую .NET Core, но установка тестового адаптера NUnit при переходе на VS2017 решила эту проблему для меня.
— Кьяран Галлахер

8
  1. инструменты
  2. NuGet Package Manager
  3. Управление пакетами NuGet для решения
  4. Просматривать
  5. NUnitTestAdapter.WithFramework
  6. Ctrl + R, A, чтобы построить / запустить тесты

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

Использование NUnitTestAdapter.WithFramework гарантирует, что между версиями NUnit и NUnit Adapter практически нет несоответствий (т. Е. «Это просто работает»)


для меня он начинает работать после обновления адаптера до NUnitAdapter3 (меню VS -> Инструменты-> Расширения и обновления ...) + обновление страницы NuGet для NUnit с 2.6.3 до 3.2.1. Спасибо!
— улыбается

1
это единственное, что сработало для меня - должен был быть «WithFramework» (не только стандартный адаптер)
— Mani5556

4

Проверьте, указали ли вы [TestFixureSetUp] и [Test]

в тестовом классе

образец:

namespace ClassLibrary1
{
   public class SimpleCalculator
   {
      public Calculator _calculator;
      [TestFixtureSetUp]
      public void initialize()
      {
         _calculator = new Calculator();
      }
      [Test]
      public void DivideTest()
      {
         int a = 10;
         int b = 2;
         int expectedValue = a/b;
         int actualValue = _calculator.Divide(a, b);
         Assert.AreEqual(expectedValue, actualValue, "Functionality not working properly!");
      }
   }   
}

1
TestFixtureSetup, кажется, устарел, лучше <NUnit.Framework.OneTimeSetUp>
— Йохен

1

Мне пришлось удалить, а затем повторно установить пакет nuget xunit.runner.visualstudio . Я попробовал это после того, как попробовал все вышеупомянутые предложения, так что, возможно, это была смесь вещей.


1

Еще одна причина этой проблемы - если вы открываете проект с подключенного диска - Visual Studio правильно обрабатывает такие проекты, но, очевидно, Nunit их не поддерживает.

Копирование проекта в физическое исправило проблему.


0

Я также обнаружил, что когда я удалил nunit v3.2.1, ссылка на инфраструктуру nunit для v3.2.1 все еще была в моем проекте в обозревателе решений. Обозреватель решений> ProjectName > Ссылки

Если вы щелкните правой кнопкой мыши, он покажет версию. Удалите это, затем щелкните правой кнопкой мыши на References> Add Reference.

Найдите версию 2.x и добавьте, а затем пересоберите решение.

Это сработало для меня!


0

Я испытал проблему, упомянутую оп

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

эта цепочка задач решила проблему для меня

  • создал тестовый проект,
  • переместил туда тестовые файлы
  • добавлены ссылки, чтобы тестовый проект компилировался
  • добавили пакеты NuGet для адаптеров Nunit и Nunit в тестовый проект
  • перекомпилированы

я смог успешно запустить тесты Nunit.


0

Если вы используете TestCaseSourceатрибут, убедитесь, что источник существует и соблюдает документацию , иначе ваши тесты не будут обнаружены.


0

У меня была похожая проблема, когда тесты не были обнаружены. У меня была правильная версия NUnit, версии совпадали между NUnit и адаптером, и тесты были помечены правильно. Я работал под управлением VS 2017 Enterprise не как администратор. После запуска VS от имени администратора появились тесты.


0

Я начал новое решение с тестовым проектом и сравнил его с моим исходным проблемным проектом. В оригинале по какой-то причине был файл app.config . Я исключил этот файл из проекта и увидел, что мои тесты снова появляются в проводнике тестов.


0

У меня тоже была эта проблема, но причина была в другом. Я использую VS2017 с F # 4.0.

Во-первых, консоль в Visual Studio не дает достаточно подробностей, почему тесты не могут быть найдены; он просто не сможет загрузить DLL с тестами. Так что используйте NUnit3console.exe в командной строке, так как это дает вам больше деталей.

В моем случае это было потому, что тестовый адаптер искал более новую версию F # Core DLL (4.4.1.0) (F # 4.1), тогда как я все еще использую 4.4.0.0 (F # 4.0). Поэтому я просто добавил это в app.config тестового проекта:

  <dependentAssembly>
    <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="4.4.0.0" />
  </dependentAssembly>

т.е. перенаправить на более раннее ядро ​​F #.


0

У меня была такая же проблема, когда вдруг в окне Test Explorer не появилось ни одного теста. У меня есть обновленная версия "NUnit3TestAdapter"

и после многих поисков и усилий я обнаружил, что мне нужно установить следующие значения в свойствах проекта: [В окне обозревателя решений: щелкните правой кнопкой мыши Project> Properties] На вкладке Build установите Platform = x64 и установите Platform target = x86 или Любой процессор Создайте проект, и все тесты появятся в окне Test Explorer.

Важное примечание: я пришел к решению, увидев следующее сообщение в окне вывода:

«В тестовом прогоне будут использоваться библиотеки DLL, созданные для платформы Framework45 и платформы X86. Следующие библиотеки DLL не будут частью прогона: AutomationTests.dll создан для Framework Framework45 и платформы X64».


0

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


0

Просто чтобы добавить свои $ .02 здесь, я столкнулся с подобной проблемой только вчера, где 168 моих тестов отсутствовали. Я попробовал почти все в этом посте - особенно убедившись, что мои версии NUnit были одинаковыми - все безрезультатно. Затем я вспомнил, что мои тесты были разделены на плейлисты; и они не обновляются автоматически при добавлении новых тестов . Итак, когда я удалил плейлисты, BAM! Все мои тесты вернулись еще раз.


-1

Убедитесь, что ваши тесты правильно помечены атрибутом Test. Если все тесты помечены только атрибутом Explicit, TestAdapter не распознает прибор.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.