Testy jednostki NUnit nie są wyświetlane w Eksploratorze testów z zainstalowanym adapterem testowym


145

Zainstalowałem NUnit Test Adapter dla VS2012 + 2013. Kiedy po raz pierwszy zainstalowałem, testy adaptera pojawiały się, ale dzisiaj z jakiegoś powodu przestały się pojawiać. Po zbudowaniu, przebudowie, wyczyszczeniu, ponownym uruchomieniu nic nie pojawia się w Eksploratorze testów. Dlaczego tak się dzieje? Używam VS2013 Ultimate.


2
Spróbuj kliknąć prawym przyciskiem myszy projekt testowy, a następnie kliknij Uruchom. Ponownie zapełni okna testami.
Chase Florell

@ChaseFlorell nie. Widzę, że zielony pasek w Eksploratorze testów zaczyna się poruszać, a następnie zatrzymuje się ułamek sekundy później.
RobVious

Czy masz inne narzędzia testowe, które mogą przeszkadzać? Używam R # do uruchamiania moich testów i używam VS2012, więc nie używam wystarczająco dobrze twojego środowiska. Wiem, że kiedy zamknę okno lub uruchomię niewielką część testów, pełne drzewo testów znika.
Chase Florell

Możesz spróbować wyładować projekt testowy, odbudować, a następnie ponownie załadować ...
Chase Florell

@ChaseFlorell Mam R #, ale jest wolny jak melasa z testami NUnit ... i działał wcześniej, co jest frustrujące. Spróbuję rozładować.
RobVious

Odpowiedzi:


87

Jeśli projekt testowy jest przeznaczony dla platformy 64-bitowej, testy nie pojawią się w adapterze testowym NUnit.


54
Być może musi pasować do architektury określonej w menu Test -> Ustawienia testu -> Domyślna architektura procesora
Brannon

6
@Brannon To robi. Jeśli jest ustawiony na x64, testy w projektach x64 są widoczne.
Podstawowy

2
Stało się tu coś głupszego - zapomniałem dodać atrybut [Test] do mojej metody testowej :)
Nikolai

Ten problem wydaje się nadal występować w adapterze testowym NUnit 3. Zobacz rozwiązanie firmy Simoyd dotyczące architektury adaptera testowego (x64 vs x86).
bart

1
To jest nieprawidłowa odpowiedź. Aby przeprowadzić testy, wybierz „Test” -> „Ustawienia testu” -> „Domyślna architektura procesora” -> „x64”
Andrew Rondeau

182

Jeśli używasz wersji NUnit3 + , dostępny jest nowy adapter testowy.

Przejdź do „Narzędzia -> Rozszerzenia i aktualizacje -> Online” i wyszukaj „NUnit3 Test Adapter”, a następnie zainstaluj.


Dodatkowe +1, ponieważ rozwiązało to również problem ze znikającymi wskaźnikami pokrycia kodu.
Aidanapword

Jeśli serwer proxy zapory zablokował adres URL za pośrednictwem rozszerzeń i aktualizacji, użyj tego adresu URL, aby pobrać adapter. marketplace.visualstudio.com/…
Yawar Murtaza

Należy pamiętać, że może być również konieczne wyłączenie adaptera testowego NUnit2.
Mark Pattison

Jaka jest różnica między uzyskaniem tego w ten sposób a pobraniem z menedżera pakietów NuGet?
oktawski

Korzystając z NuGet, będziesz mieć dostęp do interfejsu API nunit. Korzystając w ten sposób, będziesz mógł uruchamiać testy w Eksploratorze Testów (domyślnie uruchamia tylko Test MS).
Ricardo França

57

Mój zestaw testowy jest 64-bitowy. Z paska menu u góry programu Visual Studio 2012 mogłem wybrać „Test” -> „Ustawienia testowe” -> „Domyślna architektura procesora” -> „X64”. Po „Przebuduj rozwiązanie” z menu „Kompilacja” mogłem zobaczyć wszystkie moje testy w eksploratorze testów. Miejmy nadzieję, że pomoże to komuś w przyszłości = D.


3
Upewnij się, że sprawdziłeś architekturę swoich zestawów i programów. Nawet jeśli platforma dla twojego rozwiązania lub projektu może być jawnie ustawiona na x64, jeśli twoja architektura testów nie pasuje, będziesz mieć problemy z uruchomieniem testów.
Dodzi Dzakuma

30

Sprawdź, czy wersje NUnit nie są zgodne. Aktualnie dostępny adapter testowy NUnit działa tylko z NUnit w wersji 2.6.4 i starszych. Aby obniżyć wersję NUnit z wersji 3.x, przejdź do konsoli Menedżera pakietów> update-package NUnit -version 2.6.4

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


6
Panie, dokładnie rozwiązał mój problem! Dziękuję Ci! Jest pakiet NuGet o nazwie NUnitTestAdapter.WIthFramework, który działa świetnie!
TheAkhemist

Miałem podobny problem z niezgodnością wersji NUnit. Niektóre (ale nie wszystkie) z moich testów nie były wyświetlane w Eksploratorze testów, więc wypróbowałem wszelkiego rodzaju zalecenia, takie jak aktualizacja adaptera testowego NUnit. Wcześniej zaktualizowałem NUnit z 3.6.1 do 3.7.1, ale z jakiegoś powodu jeden z moich projektów nadal odnosił się do nunit.framework.dll w wersji 3.6.1, podczas gdy wszystko inne odnosiło się do 3.7.1. Zaktualizowałem odniesienie do wersji 3.7.1 i to załatwiło sprawę. Jak dotąd moje testy nie zniknęły. Skrzyżowane palce!
jrupe

23

W mojej sytuacji „NUnit3 Test Adapter” został wyłączony. Aby ponownie włączyć, przejdź do menu

Narzędzia-> Rozszerzenia i aktualizacje ...

Po lewej stronie wybierz „Zainstalowane” -> „Wszystkie”.

W prawym górnym rogu wyszukaj „nunit”.

Jeśli masz zainstalowany „NUnit3 Test Adapter”, przy znalezionym elemencie możesz go włączyć / wyłączyć.

wprowadź opis obrazu tutaj


2
U mnie to nie zadziałało. Próbowałem odinstalować i udawał, że zniknął, ale był tam po ponownym uruchomieniu. Dowiedziałem się, że zainstalowałem NUnit jako standardowy użytkownik, a następnie próbowałem odinstalować go jako administrator. VS nic o tym nie mówi ... Więc rozwiązaniem jest włączenie go bez uprawnień administratora lub odwrotnie.
Tom

10

Ta odpowiedź wydaje się dość prosta, ale na początku nie była dla mnie całkowicie oczywista. Jeśli tworzysz (ponownie) rozwiązanie, kompiluje ono tylko projekty skonfigurowane do kompilowania wBuild -> Configuration Manager

To był mój problem, musiałem nieumyślnie zmienić ustawienia konfiguracji kompilacji lub coś, co spowodowało, że moje projekty testowe nie zostały zbudowane (kiedy były wcześniej). Więc Test Explorerokno patrzyło na nieaktualne biblioteki DLL. Stało się dla mnie jasne, że tak jest po wykonaniu a Cleani zobaczeniu, że większość moich testów znika i nie wraca po rebuild... Dalsza inspekcja binfolderu wykazała, że ​​te projekty w ogóle nie były budowane.


Chociaż wszystkie projekty były ustawione na kompilację w menedżerze konfiguracji, musiałem ręcznie zbudować każdy projekt testowy, aby testy pojawiały się ponownie.
Noel Widmer

Ręcznie budowałem projekty testowe. To nie wystarczyło. Musiałem zrobić to, co mówi ta odpowiedź.
Jared

10

Miałem działającą konfigurację (dla NUnit2 i NUnit3 w zależności od rozwiązania i wielu wersji Visual Studio między 2012 a 2017 rokiem) i nagle przestała działać pewnego dnia: nie wykryto żadnych testów w żadnym rozwiązaniu ani wersji VS.

W moim przypadku pomogło to usunąć %localappdata%\Temp\VisualStudioTestExplorerExtensions. Po ponownym uruchomieniu VS wszystko działało jak wcześniej.


10

Jeśli używasz VS 2017 i .net core , jak powiedziano tutaj , powinieneś dodać odwołania do struktury testowej NUnit 3.6.1 , do modułu uruchamiającego testy NUnit3TestAdapter 3.8.0-alpha1 i do testowego zestawu SDK Microsoft.NET.Test.Sdk 15.0.0 .


3
Nie używam platformy .NET Core, ale zainstalowanie adaptera testowego NUnit po przejściu na VS2017 rozwiązało problem.
Ciaran Gallagher

8
  1. Przybory
  2. Menedżer pakietów NuGet
  3. Zarządzaj pakietami NuGet w poszukiwaniu rozwiązania
  4. Przeglądaj
  5. NUnitTestAdapter.WithFramework
  6. Ctrl + R, A, aby zbudować / uruchomić testy

wprowadź opis obrazu tutaj

Korzystanie z NUnitTestAdapter.WithFramework gwarantuje, że nie ma niespójności między wersjami NUnit i NUnit Adapter / nie ma ich wcale (tzn. „Po prostu działa”)


dla mnie zaczyna działać po aktualizacji adaptera do NUnitAdapter3 (Menu VS -> Narzędzia-> Rozszerzenia i aktualizacje ...) + zaktualizuj stronę NuGet dla NUnit z 2.6.3 do 3.2.1. dzięki!
smily

1
to jedyna rzecz, która u mnie zadziałała - musiała to być ta "WithFramework" (nie tylko standardowa przejściówka)
Mani5556

4

Sprawdź, czy podałeś [TestFixureSetUp] i [Test]

w klasie testowej

próba:

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 wydaje się być przestarzały, lepsza jest <NUnit.Framework.OneTimeSetUp>
Jochen

1

Musiałem odinstalować, a następnie ponownie zainstalować pakiet nuget xunit.runner.visualstudio . Próbowałem tego po wypróbowaniu wszystkich powyższych sugestii, więc może to była mieszanka rzeczy.


1

Inną przyczyną tego problemu jest otwarcie projektu z zamapowanego dysku - program Visual Studio poprawnie obsługuje takie projekty, ale najwyraźniej Nunit ich nie obsługuje.

Skopiowanie projektu do fizycznego rozwiązało problem.


0

Odkryłem również, że kiedy odinstalowałem nunit v3.2.1, odniesienie do frameworka nunit dla wersji 3.2.1 było nadal w moim projekcie w eksploratorze rozwiązań. Eksplorator rozwiązań> nazwa projektu > odwołania

Jeśli klikniesz prawym przyciskiem myszy, wyświetli się wersja. Usuń to, a następnie kliknij prawym przyciskiem myszy Referencje> Dodaj odniesienie.

Wyszukaj wersję 2.xi dodaj, a następnie odbuduj rozwiązanie.

To zadziałało dla mnie!


0

Doświadczyłem problemu, o którym mówił op

Mój przypadek polegał na tym, że dostałem stary projekt, a testy były w rzeczywistości częścią testowanego systemu. Zakładam, że korzystali z zewnętrznego testera.

ten łańcuch zadań rozwiązał problem za mnie

  • stworzył projekt testowy,
  • przeniósł tam pliki testowe
  • dodane odniesienia, aby projekt testowy mógł się skompilować
  • dodał pakiety NuGet adaptera Nunit i Nunit do projektu testowego
  • ponownie skompilowany

Udało mi się pomyślnie przeprowadzić testy Nunit.


0

Jeśli używasz TestCaseSourceatrybutu, upewnij się, że źródło istnieje i jest zgodne z dokumentacją , w przeciwnym razie testy nie zostaną wykryte.


0

Miałem podobny problem, gdy testy nie zostały wykryte. Miałem poprawną wersję NUnit, wersje dopasowane między NUnitem i adapterem, a testy zostały poprawnie oznaczone. Używałem VS 2017 Enterprise nie jako administrator. Po uruchomieniu VS jako administrator pojawiły się testy.


0

Zacząłem nowe rozwiązanie z projektem testowym i porównałem je z moim oryginalnym projektem, w którym wystąpił problem. Oryginał z jakiegoś powodu zawierał plik app.config . Wykluczyłem ten plik z projektu i zobaczyłem, jak moje testy pojawiają się ponownie w eksploratorze testów.


0

Ja też miałem ten problem, ale przyczyna była inna. Używam VS2017 z F # 4.0.

Po pierwsze, konsola w programie Visual Studio nie podaje wystarczająco szczegółowych informacji, dlaczego nie można znaleźć testów; po prostu nie uda się załadować biblioteki DLL za pomocą testów. Dlatego użyj NUnit3console.exe w wierszu poleceń, ponieważ daje to więcej szczegółów.

W moim przypadku było to spowodowane tym, że adapter testowy szukał nowszej wersji F # Core DLL (4.4.1.0) (F # 4.1), podczas gdy nadal używam 4.4.0.0 (F # 4.0). Więc właśnie dodałem to do app.config projektu testowego: -

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

tj. przekierować do wcześniejszego rdzenia F #.


0

Miałem ten sam problem, gdy nagle żaden test nie pojawił się w oknie Eksploratora testów. Mam zaktualizowaną wersję „NUnit3TestAdapter”

i po wielu poszukiwaniach i wysiłkach stwierdziłem, że muszę ustawić następujące wartości we właściwościach projektu: [W oknie Eksplorator rozwiązań: kliknij prawym przyciskiem myszy Projekt> Właściwości] Na karcie Kompilacja ustaw Platformę = x64 i ustaw Platformę docelową = x86 lub Dowolny procesor Zbuduj projekt, a wszystkie testy pojawią się w oknie Eksploratora testów.

Ważna uwaga: doszedłem do rozwiązania po zobaczeniu następnej wiadomości w oknie wyjściowym:

„Uruchomienie testowe będzie korzystało z bibliotek DLL zbudowanych dla Framework 45 i platformy X86. Następujące biblioteki DLL nie będą częścią uruchomienia: AutomationTests.dll jest skompilowany dla Framework Framework45 i Platform X64”.


0

Miałem zawieszone procesy msbuild.exe. Nie wiem, czy to był mój problem, czy nie, ale zajęło mi wiele tropów i błędów podczas ponownej instalacji różnych adapterów NUnit, zanim znalazłem zawieszone procesy.


0

Aby dodać tutaj 0,02 dolara, wczoraj napotkałem podobny problem, w którym brakowało 168 moich testów. Wypróbowałem prawie wszystko w tym poście - zwłaszcza upewniając się, że moje wersje NUnit są takie same - wszystko bezskutecznie. Wtedy przypomniałem sobie, że moje testy zostały podzielone na listy odtwarzania; i te nie aktualizują się automatycznie po dodaniu nowych testów . Kiedy więc usunąłem listy odtwarzania, BAM! , wszystkie moje testy wróciły jeszcze raz.


-1

Upewnij się, że testy są odpowiednio oznaczone atrybutem Test. Jeśli wszystkie testy są oznaczone tylko atrybutem Explicit, TestAdapter nie rozpoznaje urządzenia.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.