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

145

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

RobVious
источник
2
Попробуйте щелкнуть правой кнопкой мыши по вашему тестовому проекту и затем нажмите «Выполнить» Это снова заполнит окна тестами.
Чейз Флорелл
@ChaseFlorell это не так. Я вижу зеленую полосу в Test Explorer, которая начинает работать, а затем останавливается на долю секунды позже.
RobVious
У вас есть другие инструменты тестирования, которые могут мешать? Я использую R # для запуска своих тестов, и я использую VS2012, поэтому я недостаточно хорошо понимаю вашу среду. Я знаю, что когда я закрываю окно или запускаю небольшое подмножество тестов, полное дерево тестов исчезает.
Чейз Флорелл
Вы можете попытаться выгрузить тестовый проект, перестроить, а затем снова загрузить его ...
Чейз Флорелл
@ChaseFlorell У меня есть R #, но это медленно, как патока с тестами NUnit ... и это работало до того, что разочаровывает. Попробую разгрузить.
RobVious

Ответы:

87

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

Brannon
источник
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.

Simoyd
источник
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

Collo
источник
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, с помощью найденного элемента вы можете включить / отключить его.

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

sahl04
источник
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 все заработало как раньше.

realMarkusSchmidt
источник
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 практически нет несоответствий (т. Е. «Это просто работает»)

brntsllvn
источник
для меня он начинает работать после обновления адаптера до 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 . Я попробовал это после того, как попробовал все вышеупомянутые предложения, так что, возможно, это была смесь вещей.

JayC
источник
1

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

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

Аделин
источник
0

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

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

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

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

RShome
источник
0

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

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

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

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

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

Greg
источник
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».

C. Мар
источник
0

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

Эндрю Рондо
источник
0

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

Брайан
источник
-1

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

Ши Леслин
источник