Тести NUnit Unit не відображаються в Test Explorer із встановленим тестовим адаптером


145

Я встановив тестовий адаптер NUnit для VS2012 + 2013. Коли я вперше встановив тести адаптера, з'явилися, але сьогодні вони чомусь перестали показуватися. Після будівництва, відновлення, очищення, перезавантаження нічого не з’являється в Test Explorer. Чому це станеться? Я використовую VS2013 Ultimate.


2
Спробуйте клацнути правою кнопкою миші ваш тестовий проект, а потім натисніть Запустити. Він знову заповнить вікна тестами.
— Chase Florell

@ChaseFlorell це не так. Я бачу, як зелена смужка в Test Explorer починає йти, а потім зупиняється на частку секунди пізніше.
— RobVious

Чи є у вас інші інструменти для тестування, які могли б заважати? Я використовую R # для запуску своїх тестів, і я використовую VS2012, тому я не знаходжу ваше середовище досить добре. Я знаю, що коли я закрию вікно або запускаю невелику підмножину тестів, повне дерево тесту зникає.
— Chase Florell

Ви можете спробувати вивантажити тестовий проект, відновити його, а потім перезавантажити його ...
— Chase Florell

@ChaseFlorell У мене R #, але це повільно, як патока з тестами на NUnit ... і це працювало перед тим, що засмучує. Я спробую розвантажити.
— RobVious

Відповіді:


87

Якщо ваш тестовий проект призначений для націлення на 64-бітну платформу, тести не відображатимуться в тестовому адаптері NUnit.


54
Можливо, вона повинна відповідати архітектурі, визначеній у меню на Тест -> Налаштування тестування -> Архітектура процесора за замовчуванням
— Браннон

6
@Brannon Це так. Якщо встановлено значення x64, видно тести в проектах x64.
— Основні

2
Тут сталося щось більш дурне - забув додати атрибут [Test] до мого методу тестування :)
— Микола

Здається, ця проблема все ще присутня в тестовому адаптері NUnit 3. Дивіться рішення Simoyd щодо архітектури тестового адаптера (x64 проти x86).
— барт

1
Це неправильна відповідь. Для запуску тестів виберіть "Тест" -> "Налаштування тесту" -> "Архітектура процесора за замовчуванням" -> "x64"
— Ендрю Рондо

182

Якщо ви використовуєте версію NUnit3 + , доступний новий тестовий адаптер.

Перейдіть до "Інструменти -> Розширення та оновлення -> Інтернет" та знайдіть "Тестовий адаптер NUnit3", а потім встановіть.


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

Якщо проксі-сервер брандмауера заблокував URL-адресу через розширення та оновлення, використовуйте цей URL-адресу для завантаження адаптера. marketplace.visualstudio.com/…
— Yawar Murtaza

Зверніть увагу, що вам може знадобитися відключити тестовий адаптер NUnit2.
— Марк Паттісон

Яка різниця між отриманням цього способу та отриманням його від менеджера пакетів NuGet?
— октавіан

За допомогою NuGet ви отримаєте доступ до api nunit. Використовуючи цей спосіб, ви зможете запускати тести на Test Explorer (за замовчуванням він запускає лише тест MS).
— Рікардо Франча

57

Моя тестова збірка 64-розрядна. На панелі меню у верхній частині візуальної студії 2012 року я зміг вибрати "Тест" -> "Налаштування тестування" -> "Архітектура процесора за замовчуванням" -> "X64". Після "Відновлення рішення" в меню "Збірка" я зміг побачити всі мої тести в тестовому провіднику. Сподіваємось, це допоможе комусь іншому в майбутньому = D.


3
Переконайтесь, що ви перевірили архітектуру своїх збірок і програм. Навіть незважаючи на те, що платформа для вашого рішення чи проекту може бути явно встановлена ​​на x64, якщо ваша тестова архітектура не збігається, у вас виникнуть проблеми із запуском тестів.
— Dodzi Dzakuma

30

Перевірте невідповідність версій NUnit. На даний момент доступний тестовий адаптер NUnit працює лише для версії 2.6U і NUnit. Для пониження рівня NUnit до версії 3.x перейдіть до консолі диспетчера пакунків> update-package NUnit -версія 2.6.4

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


6
Ви, сер, точно вирішили моє питання! Дякую! Існує цілий пакет під назвою NUnitTestAdapter.WIthFramework, який працює частуванням!
— Техаміст

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

23

У моїй ситуації тестовий адаптер NUnit3 вимкнено. Для повторного включення перейдіть до меню

Інструменти-> Розширення та оновлення ...

У лівій частині виберіть "Встановлено" -> "Усі".

У верхньому правому куті знайдіть "nunit".

Якщо у вас встановлений "Тестовий адаптер NUnit3", за допомогою знайденого елемента його можна ввімкнути / вимкнути.

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


2
Для мене це не спрацювало. Спробував видалити, і він зробив вигляд, що його вже немає, але він був там після перезавантаження. Я зрозумів, що я встановив NUnit як стандартний користувач, а потім спробував видалити його як адміністратор. VS про це нічого не говорить ... Отже, рішення полягає в тому, щоб спробувати включити його без прав адміністратора чи навпаки.
— Том

10

Ця відповідь здається досить базовою, але спочатку не була абсолютно очевидною. Якщо ви (пере) будуєте рішення, він будує лише ті проекти, які налаштовані будувати вBuild -> Configuration Manager

Це було моєю проблемою. Я, мабуть, випадково змінив налаштування конфігурації збірки або щось, що змусило мої тестові проекти не будуватися (коли вони раніше були). Тож у Test Explorerвікні дивилися дрі, які застаріли. Мені стало зрозуміло, що це було так після того, як я зробив 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-alpha1 та на тестову SDK Microsoft.NET.Test.Sdk 15.0.0 .


3
Я не використовую .NET Core, але встановлення тестового адаптера NUnit, коли я перейшов на VS2017, вирішив проблему для мене.
— Ciaran Gallagher

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>
— Jochen

1

Мені довелося видалити, потім перевстановити пакунок нута xunit.runner.visualstudio. Я спробував це, спробувавши всі вищенаведені пропозиції, тому, можливо, це була суміш речей.


1

Ще однією причиною цієї проблеми є те, якщо ви відкриєте проект із зібраного накопичувача - Visual Studio обробляє такі проекти належним чином, але, очевидно, Nunit їх не підтримує.

Копіювання проекту до фізичного виправленого питання.


0

Я також виявив, що коли я видалив nunit v3.2.1, посилання на рамку nunit для v3.2.1 все ще була в моєму проекті в провіднику рішень. Провідник рішень> ProjectName > Посилання

Якщо ви клацнете правою кнопкою миші, вона покаже версію. Видаліть це. Потім клацніть правою кнопкою миші посилання Список літератури> Додати довідку.

Шукайте версію 2.x версії та додайте, а потім відновіть рішення.

Це працювало для мене!


0

Я відчув проблему, згадану оп

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

цей ланцюжок завдань вирішив проблему для мене

  • створив тестовий проект,
  • перенесли туди тестові файли
  • додано посилання, щоб тестовий проект був складений
  • додали пакети NuGet та адаптер 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"

і після багатьох пошуків та зусиль я виявив, що мені потрібно встановити наступні значення у властивостях проекту: [У вікні Провідника рішення: клацніть правою кнопкою миші на Проекті> Властивості] на вкладці Створити, встановіть Платформа = x64 та встановіть Платформа target = x86 або Будь-який процесор побудувати проект, і всі тести з’являться у вікні Test Explorer.

Важлива примітка: Я прийшов до рішення, побачивши наступне повідомлення у вікні виводу:

"Для тестового запуску використовуються DLL, побудовані для Framework Framework45 та платформи X86. Наступні DLL не будуть частиною запуску: AutomationTests.dll побудований для Framework Framework45 та платформи X64."


0

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


0

Тільки щоб додати сюди свої $ 0,02, я вчора зіткнувся з подібним випуском, де пропав 168 моїх тестів. Я спробував більшість всього в цій публікації - особливо, переконавшись, що моя версія (и) NUnit однакова - все безрезультатно. Потім я згадав, що свої тести я розділив на списки відтворення; і вони не оновлюються автоматично під час додавання нових тестів . Отже, коли я видалив списки відтворення, BAM! , всі мої тести знову повернулися.


-1

Переконайтесь, що ваші тести правильно позначені атрибутом Test. Якщо всі тести позначені лише атрибутом Explicit, TestAdapter не розпізнає кріплення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.