Тести 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.