NUnit Unit-Tests werden im Test Explorer mit installiertem Testadapter nicht angezeigt


145

Ich habe den NUnit-Testadapter für VS2012 + 2013 installiert. Als ich ihn zum ersten Mal installierte, wurden die Adaptertests angezeigt, aber sie wurden heute aus irgendeinem Grund nicht mehr angezeigt. Nach dem Erstellen, Wiederherstellen, Reinigen und Neustarten wird im Test Explorer nichts angezeigt. Warum sollte das passieren? Ich verwende VS2013 Ultimate.


2
Klicken Sie mit der rechten Maustaste auf Ihr Testprojekt und klicken Sie dann auf Ausführen. Die Fenster werden erneut mit den Tests gefüllt.
Chase Florell

@ChaseFlorell tut es nicht. Ich sehe, dass der grüne Balken im Test Explorer startet und einen Sekundenbruchteil später stoppt.
RobVious

Haben Sie andere Testwerkzeuge, die stören könnten? Ich verwende R #, um meine Tests auszuführen, und ich verwende VS2012, daher ist Ihre Umgebung nicht gut genug. Ich weiß, dass der vollständige Testbaum verschwindet, wenn ich das Fenster geschlossen oder eine kleine Teilmenge von Tests ausgeführt habe.
Chase Florell

Sie könnten versuchen, das Testprojekt zu entladen, neu
Chase Florell

@ChaseFlorell Ich habe R #, aber es ist langsam wie Melasse mit NUnit-Tests ... und es hat vorher funktioniert, was frustrierend ist. Ich werde versuchen, zu entladen.
RobVious

Antworten:


87

Wenn Ihr Testprojekt auf eine 64-Bit-Plattform ausgerichtet ist, werden die Tests nicht im NUnit-Testadapter angezeigt.


54
Es kann sein, dass es mit der Architektur übereinstimmen muss, die im Menü unter Test -> Testeinstellungen -> Standardprozessorarchitektur
Brannon

6
@Brannon Das tut es. Wenn dies auf x64 festgelegt ist, werden Tests in x64-Projekten angezeigt.
Basic

2
Hier ist etwas viel dümmeres passiert - ich habe vergessen, meiner Testmethode das Attribut [Test] hinzuzufügen :)
Nikolai

Dieses Problem scheint im NUnit 3-Testadapter weiterhin vorhanden zu sein. Siehe Simoyds Lösung zur Testadapterarchitektur (x64 vs x86).
Bart

1
Dies ist eine falsche Antwort. Um die Tests auszuführen, wählen Sie "Test" -> "Testeinstellungen" -> "Standardprozessorarchitektur" -> "x64"
Andrew Rondeau

182

Wenn Sie eine NUnit3 + -Version verwenden , ist ein neuer Testadapter verfügbar.

Gehen Sie zu "Extras -> Erweiterungen und Updates -> Online" und suchen Sie nach "NUnit3 Test Adapter" und installieren Sie dann.


Extra +1, da dadurch auch das Problem behoben wurde, dass die Kennzahlen für die Codeabdeckung verschwanden.
Aidanapword

Wenn der Firewall-Proxy die URL über Erweiterungen und Updates blockiert hat, verwenden Sie diese URL, um den Adapter herunterzuladen. marketplace.visualstudio.com/…
Yawar Murtaza

Beachten Sie, dass Sie möglicherweise auch den NUnit2-Testadapter deaktivieren müssen.
Mark Pattison

Was ist der Unterschied zwischen dem Abrufen auf diese Weise und dem Abrufen vom NuGet-Paketmanager?
Oktavian

Mit NuGet haben Sie Zugriff auf die API von nunit. Auf diese Weise können Sie die Tests im Test Explorer ausführen (standardmäßig wird nur der MS-Test ausgeführt).
Ricardo França

57

Meine Testassembly ist 64-Bit. In der Menüleiste oben in Visual Studio 2012 konnte ich "Test" -> "Testeinstellungen" -> "Standardprozessorarchitektur" -> "X64" auswählen. Nach einer 'Rebuild Solution' aus dem 'Build'-Menü konnte ich alle meine Tests im Test Explorer anzeigen. Hoffentlich hilft dies jemand anderem in der Zukunft = D.


3
Stellen Sie sicher, dass Sie die Architektur Ihrer Assemblys und Programme überprüfen. Auch wenn die Plattform für Ihre Lösung oder Ihr Projekt möglicherweise explizit auf x64 festgelegt ist, haben Sie Probleme beim Ausführen von Tests, wenn Ihre Testarchitektur nicht übereinstimmt.
Dodzi Dzakuma

30

Überprüfen Sie, ob die NUnit-Versionen nicht übereinstimmen. Der derzeit verfügbare NUnit-Testadapter funktioniert nur für NUnit Version 2.6.4 und niedriger. Um NUnit von Version 3.x herunterzustufen, gehen Sie zu Package Manager Console> Update-Paket NUnit-Version 2.6.4

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


6
Sie, mein Herr, haben mein Problem genau gelöst! Danke dir! Es gibt ein Nuget-Paket namens NUnitTestAdapter.WIthFramework, das ein Vergnügen ist!
TheAkhemist

Ich hatte ein ähnliches Problem mit der Nichtübereinstimmung der NUnit-Versionen. Einige (aber nicht alle) meiner Tests wurden nicht im Test Explorer angezeigt, daher habe ich alle möglichen Empfehlungen ausprobiert, z. B. das Aktualisieren des NUnit-Testadapters. Ich hatte zuvor NUnit von 3.6.1 auf 3.7.1 aktualisiert, aber aus irgendeinem Grund bezog sich eines meiner Projekte immer noch auf nunit.framework.dll Version 3.6.1, während alles andere auf 3.7.1 verwies. Ich habe den Verweis auf 3.7.1 aktualisiert und dies hat den Trick getan. Bisher sind meine Tests nicht verschwunden. Daumen drücken!
Jrupe

23

In meiner Situation wurde der 'NUnit3 Test Adapter' deaktiviert. Um es wieder zu aktivieren, gehen Sie zum Menü

Tools-> Erweiterungen und Updates ...

Wählen Sie auf der linken Seite 'Installiert' -> 'Alle'.

Suchen Sie in der oberen rechten Ecke nach 'nunit'.

Wenn Sie 'NUnit3 Test Adapter' installiert haben, können Sie es mit dem gefundenen Element aktivieren / deaktivieren.

Geben Sie hier die Bildbeschreibung ein


2
Bei mir hat das nicht geklappt. Versuchte die Deinstallation und es gab vor, weg zu sein, aber es war nach dem Neustart da. Ich habe herausgefunden, dass ich NUnit als Standardbenutzer installiert und dann versucht habe, es als Administrator zu deinstallieren. VS sagt nichts darüber aus ... Die Lösung besteht also darin, es ohne Administratorrechte zu aktivieren oder umgekehrt.
Tom

10

Diese Antwort scheint ziemlich einfach zu sein, war mir aber zunächst nicht ganz klar. Wenn Sie die Lösung (neu) erstellen, werden nur die Projekte erstellt, die für die Erstellung in konfiguriert sindBuild -> Configuration Manager

Dies war mein Problem. Ich muss versehentlich die Einstellungen für die Build-Konfiguration geändert haben oder etwas, das dazu geführt hat, dass meine Testprojekte nicht erstellt wurden (als sie zuvor waren). Das Test ExplorerFenster sah sich also veraltete DLLs an. Mir wurde klar, dass dies der Fall war, nachdem ich a durchgeführt hatte Cleanund die meisten meiner Tests verschwunden waren und nach einer rebuild... weiteren Überprüfung des binOrdners nicht mehr zurückkamen , dass diese Projekte überhaupt nicht erstellt wurden.


Obwohl alle Projekte so eingestellt waren , dass sie im Konfigurationsmanager erstellt wurden, musste ich jedes Testprojekt manuell erstellen, damit die Tests wieder angezeigt wurden.
Noel Widmer

Ich habe meine Testprojekte manuell erstellt. Das war nicht genug Ich musste tun, was diese Antwort sagte.
Jared

10

Ich hatte ein funktionierendes Setup (für NUnit2 und NUnit3 je nach Lösung und mehrere Versionen von Visual Studio zwischen 2012 und 2017) und es funktionierte plötzlich eines Tages nicht mehr: In keiner Lösung oder Version von VS wurden Tests festgestellt.

In meinem Fall hat es geholfen zu löschen %localappdata%\Temp\VisualStudioTestExplorerExtensions. Nach einem Neustart von VS funktionierte alles wie zuvor.


10

Wenn Sie wie hier erwähnt VS 2017 und .net Core verwenden , sollten Sie Verweise auf das Testframework NUnit 3.6.1 , auf den Testläufer NUnit3TestAdapter 3.8.0-alpha1 und auf das Test-SDK Microsoft.NET.Test.Sdk hinzufügen 15.0.0 .


3
Ich verwende nicht .NET Core, aber die Installation des NUnit-Testadapters beim Wechsel zu VS2017 hat das Problem für mich behoben.
Ciaran Gallagher

8
  1. Werkzeuge
  2. NuGet Package Manager
  3. Verwalten von NuGet-Paketen zur Lösung
  4. Durchsuche
  5. NUnitTestAdapter.WithFramework
  6. Strg + R, A zum Erstellen / Ausführen von Tests

Geben Sie hier die Bildbeschreibung ein

Durch die Verwendung von NUnitTestAdapter.WithFramework wird sichergestellt, dass zwischen den Versionen von NUnit und NUnit Adapter nur geringe / keine Inkonsistenzen bestehen (dh "es funktioniert einfach").


Für mich funktioniert es nach dem Update des Adapters auf NUnitAdapter3 (VS-Menü -> Tools-> Erweiterungen und Updates ...) + Update der NuGet-Seite für NUnit von 2.6.3 auf 3.2.1. Danke!
lächelnd

1
Dies ist das einzige, was für mich funktioniert hat - musste der "WithFramework" sein (nicht nur der Standardadapter)
Mani5556

4

Überprüfen Sie, ob Sie [TestFixureSetUp] und [Test] angegeben haben.

in der Testklasse

Stichprobe:

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 scheint veraltet zu sein, besser ist <NUnit.Framework.OneTimeSetUp>
Jochen

1

Ich hatte zu deinstallieren , dann die Neuinstallation xunit.runner.visualstudio nuget Paket. Ich habe dies versucht, nachdem ich alle oben genannten Vorschläge ausprobiert hatte. Vielleicht war es eine Mischung aus Dingen.


1

Eine weitere Ursache für dieses Problem ist, dass Sie ein Projekt von einem zugeordneten Laufwerk aus öffnen. Visual Studio behandelt solche Projekte ordnungsgemäß, aber anscheinend unterstützt Nunit sie nicht.

Durch Kopieren des Projekts auf eine physische Seite wurde das Problem behoben.


0

Als ich nunit v3.2.1 deinstallierte, stellte ich außerdem fest, dass sich die nunit-Framework-Referenz für v3.2.1 noch in meinem Projekt im Solution Explorer befand. Projektmappen-Explorer> Projektname > Referenzen

Wenn Sie mit der rechten Maustaste klicken, wird die Version angezeigt. Entfernen Sie diese und klicken Sie mit der rechten Maustaste auf Referenzen> Referenz hinzufügen.

Suchen Sie nach der Version 2.x und fügen Sie die Lösung hinzu und erstellen Sie sie neu.

Das hat bei mir funktioniert!


0

Ich habe das von op

Mein Fall war, dass mir ein altes Projekt übergeben wurde und die Tests tatsächlich Teil des zu testenden Systems waren. Ich gehe davon aus, dass sie den externen Testläufer verwendet haben.

Diese Task-Kette hat das Problem für mich gelöst

  • ein Testprojekt erstellt,
  • hat die Testdateien dorthin verschoben
  • Referenzen hinzugefügt, damit das Testprojekt kompiliert wird
  • fügte dem Testprojekt die NuGet-Pakete Nunit und Nunit-Adapter hinzu
  • neu kompiliert

Ich konnte die Nunit-Tests erfolgreich durchführen.


0

Wenn Sie das TestCaseSourceAttribut verwenden, stellen Sie sicher, dass die Quelle vorhanden ist und die Dokumentation beachtet wird. Andernfalls werden Ihre Tests nicht erkannt.


0

Ich hatte ein ähnliches Problem, bei dem die Tests nicht entdeckt wurden. Ich hatte die richtige Version von NUnit, Versionen, die zwischen NUnit und Adapter übereinstimmten, und die Tests wurden korrekt markiert. Ich habe VS 2017 Enterprise nicht als Administrator ausgeführt. Nach dem Start von VS als Administrator wurden die Tests angezeigt.


0

Ich habe eine neue Lösung mit einem Testprojekt gestartet und sie mit meinem ursprünglichen Problemprojekt verglichen. Das Original hatte aus irgendeinem Grund eine app.config . Ich habe diese Datei aus dem Projekt ausgeschlossen und festgestellt, dass meine Tests im Test-Explorer erneut angezeigt werden.


0

Ich hatte auch dieses Problem, aber die Ursache war anders. Ich verwende VS2017 mit F # 4.0.

Erstens gibt Ihnen die Konsole in Visual Studio nicht genügend Details, warum die Tests nicht gefunden werden konnten. Es wird nur fehlschlagen, die DLL mit den Tests zu laden. Verwenden Sie daher NUnit3console.exe in der Befehlszeile, da dies Ihnen weitere Details liefert.

In meinem Fall lag es daran, dass der Testadapter nach einer neueren Version der F # Core DLL (4.4.1.0) (F # 4.1) suchte, während ich immer noch 4.4.0.0 (F # 4.0) verwende. Also habe ich dies der app.config des Testprojekts hinzugefügt: -

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

dh auf den früheren F # -Kern umleiten.


0

Ich hatte das gleiche Problem, als plötzlich kein Test mehr im Test Explorer-Fenster erschien. Ich habe die aktualisierte Version von "NUnit3TestAdapter"

und nach vielen Suchen und Bemühungen stellte ich fest, dass ich die folgenden Werte in den Projekteigenschaften festlegen muss: [Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Projekt> Eigenschaften]. Legen Sie auf der Registerkarte Erstellen die Option Plattform = x64 und Plattformziel = x86 oder fest Jede CPU Erstellen Sie das Projekt und alle Tests werden im Test Explorer-Fenster angezeigt.

Wichtiger Hinweis: Ich bin zu einer Lösung gekommen, nachdem ich die nächste Nachricht im Ausgabefenster gesehen habe:

"Beim Testlauf werden DLLs verwendet, die für Framework Framework45 und Plattform X86 erstellt wurden. Die folgenden DLLs werden nicht Teil des Laufs sein: AutomationTests.dll wurde für Framework Framework45 und Plattform X64 erstellt."


0

Ich hatte einige msbuild.exe-Prozesse, die hängen blieben. Ich weiß nicht, ob das mein Problem war oder nicht, aber es hat mich viel Mühe gekostet, verschiedene NUnit-Adapter neu zu installieren, bevor ich die blockierten Prozesse gefunden habe.


0

Um meine $ .02 hier hinzuzufügen, bin ich erst gestern auf ein ähnliches Problem gestoßen, bei dem 168 meiner Tests fehlten. Ich habe fast alles in diesem Beitrag ausprobiert - vor allem, um sicherzustellen, dass meine Version (en) von NUnit gleich waren - alles ohne Erfolg. Ich erinnerte mich dann daran, dass ich meine Tests in Wiedergabelisten unterteilt hatte; und diese werden nicht automatisch aktualisiert, wenn Sie neue Tests hinzufügen . Als ich die Wiedergabelisten löschte, war BAM! Alle meine Tests waren wieder da.


-1

Stellen Sie sicher, dass Ihre Tests ordnungsgemäß mit dem Testattribut gekennzeichnet sind. Wenn alle Tests nur mit dem Explicit-Attribut gekennzeichnet sind, erkennt der TestAdapter das Gerät nicht.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.