Ich arbeite derzeit an einer Lösung mit derzeit 32 Unittests. Ich habe mit dem Resharper-Testläufer gearbeitet - was gut funktioniert. Alle Tests werden ausgeführt, alle Tests zeigen das richtige Testergebnis. Jetzt sagte mir ein Mitarbeiter, dass die Tests mit dem Visual Studio-Test-Explorer nicht auf seinem Computer ausgeführt werden. Sie funktionieren auch nicht auf meinem Computer, daher kann ich einige lokal fehlende Dateien oder ähnliches ausschließen.
Der Test-Explorer zeigt alle Komponententests an. Sobald Sie jedoch auf "Alle ausführen" klicken, werden alle Tests ausgegraut und zeigen kein Ergebnis des Testlaufs an:
- Alle Testklassen sind öffentlich
- Für alle Testklassen ist das
[TestClass]
Attribut deklariert - Alle Testmethoden verwenden das
[TestMethod]
Attribut - Sowohl der Produktivitätscode als auch die Testprojekte zielen auf .NET 3.5 ab.
- Ich habe schon versucht, bereinigter Build meine Lösung und / oder löschen Sie alle
obj
,bin
,Debug
undRelease
Ordner
Ich würde alle Hinweise begrüßen, die ein solches Verhalten verursachen könnten.
visual-studio
unit-testing
visual-studio-2012
resharper
ElGauchooo
quelle
quelle
Antworten:
Wenn Ihre Projekte nicht alle AnyCpu sind, möchten Sie möglicherweise auch überprüfen, ob die folgenden 2 Einstellungen übereinstimmen:
[Rechtsklick auf Testprojekt] -> Eigenschaften -> Erstellen -> Plattformziel - zB x64
[Hauptmenü] -> Test -> Testeinstellungen -> Standardprozessorarchitektur -> X64
Ich stellte fest, dass mein Testprojekt nicht ausgeführt werden konnte, wenn diese nicht übereinstimmten.
quelle
Ich hatte das gleiche Problem in VS 2017. In meinem Fall wurde es durch einen Neustart von VS gelöst.
quelle
Wenn Sie NUnit anstelle von MSTest verwenden, benötigen Sie die NUnit Test Adapter Extension für Visual Studio 2012/2013.
quelle
Microsoft.NET.Test.Sdk
von NugetIch musste meine asynchronen Testmethoden ändern, um Task anstelle von void zurückzugeben.
Die Tests waren dann im Test Explorer aktiv und ausführbar.
quelle
async void Foo()
und ihre Analysatoren haben sich nicht beschwert, aber sie könnten sicherlich eine hinzufügen, die dies tun würde. cc: @bradwilsonÜberprüfen Sie, gegen welches Framework die Tests geschrieben wurden (z. B. nunit, xunit, VS-Test usw.), und stellen Sie sicher, dass Sie den richtigen Testadapter / die richtige Runner-Erweiterung installiert haben.
Für mich fehlte der NUnit 3-Testadapter, und ich bestätigte die erforderliche Versionsnummer anhand der Abhängigkeitsversion von nunit.framework (wählen Sie die DLL im Abhängigkeitsbaum im Projektmappen-Explorer aus und drücken Sie F4, um das Eigenschaftenfenster aufzurufen).
quelle
Microsoft.VisualStudio.QualityTools.UnitTestFramework
(unsicher, welche Version). Behobene Probleme, bei denen die Methode nicht ausgeführt (oder gefunden) wurde, indem diese Referenz entfernt und der neueste (v2.1.0) MSTest.TestAdapter (und Framework) installiert wurdeMicrosoft.VisualStudio.TestTools.UnitTesting
veraltet? Ich hatte einige Tests damit, die plötzlich wie oben beendet wurden, nachdem ich einige Verweise auf ein Projekt hinzugefügt hatte, von dem sie abhängig waren.Ich hatte anderthalb Tage damit zu kämpfen. Also habe ich Folgendes getan, um es zu lösen:
Symptome
Ermittlung
Da alle Pakete während des .net Framework-Updates aktualisiert wurden, begann ich mit den Unterschieden zwischen Workin- und Nicht-Working-Projekten. Der erste Hinweis war, dass alle drei Projekte MSTest.TestAdapter und MSTest.TestFramework verwendeten
Natürlich ging ich in die -> Output - Konsole -> Drop - Down - Test in VS 2019 und am Ausgang aussah. Da gibt es nichts Nützliches.
Schritt eins der Lösung : Aktualisieren Sie MSTest.TestAdapter und MSTest.TestFramework auf Version 2.0.0
Schritt zwei der Lösung : Nun ist die Ausgabekonsole -> Dropdown - Liste Test Ausgabe gestartet eine zeigt nach dem anderen, Pakete und falsche Bindung Umleitungen fehlt
Schritt drei der Lösung : Fügen Sie die fehlenden Pakete manuell hinzu. Für mich waren das
Schritt 4 der Lösung : Die unnötigen Bindungsumleitungen wurden entfernt / behoben.
Ich hoffe das wird jemand anderem helfen.
quelle
ToolsVersion
und meine stößt, was alles durcheinander gebracht hat. Alles, was ich sagen kann, ist "Käufer aufgepasst" für MS-Unit-Tests und bereit, Ihre * .csproj-Dateien sofort zu ersetzen. Dieses Zeug ist eng integriert und sehr versionierungsabhängig.Clean-Rebuild
Lösung hat bei mir funktioniert.quelle
Ich habe festgestellt, dass im Projekt nicht auf die Assembly Microsoft.VisualStudio.QualityTools.UnitTestFramework verwiesen wurde . Stattdessen wurde auf Microsoft.VisualStudio.TestPlatform.TestFramework und Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions verwiesen . Als ich diese beiden Verweise entfernte und den Verweis auf die Assembly Microsoft.VisualStudio.QualityTools.UnitTestFramework hinzufügte , wurden die Tests, die zuvor mit dem blauen Ausrufezeichen markiert waren, plötzlich aktiv und begannen zu funktionieren.
quelle
Ich hatte dieses Problem und für mich wurde es durch mehrere Testprojekte mit verschiedenen Versionen von verursacht:
Die Konsolidierung der Nuget-Pakete für die Projekte, damit sie gleich waren, löste das Problem für mich.
quelle
Hatte das gleiche Problem nach der Neuinstallation von VS 2019. Tests wurden gefunden, aber nicht mit "Unerwarteter Fehler aufgetreten" ausgeführt. Behoben durch Einrichten von x64 anstelle von x86, das standardmäßig ausgewählt wurde.
quelle
In meinem Fall lag es daran, dass in einem Testprojekt in meiner Lösung die Nuget-Pakete MSTest.TestFramework und MSTest.TestAdapter installiert waren, in den anderen jedoch nicht. Diese Pakete mussten anscheinend erst getestet werden, nachdem sie von einem Projekt in der Lösung installiert worden waren.
Das Problem wurde behoben, indem diese Pakete in Testprojekten installiert wurden, in denen sie fehlten.
quelle
Was es für mich behoben hat, war das Upgrade der MS.Test-Nuget-Pakete
quelle
Install
Nunit3TestAdapter
Nuget hat dieses Problem gelöstquelle
Das Festlegen der Prozessorarchitektur für AnyCPU-Projekte im Test Explorer hat mein Problem behoben! Siehe Screenshot oben.
quelle
In meinem Fall hatte ich eine
async void
Methode und ersetzte sie durchasync Task
, so dass der Testlauf wie erwartet verlief:ersetzen mit :
quelle
Ich hatte die gleichen Symptome.
Stellen Sie sicher, dass Sie die richtige Visual Studio-Erweiterung über Tools - Erweiterungen und Updates installiert haben. In meinem Fall musste ich XUnit und Specflow über die Option Online installieren.
Reinigen Sie dann die Lösung und erstellen Sie sie neu.
Wenn dies immer noch nicht hilft, löschen Sie Ihr temporäres Verzeichnis (suchen Sie im Startmenü nach% temp% und löschen Sie alle Inhalte in Temp).
Und dann versuchen Sie endlich, Resharper zu deinstallieren, wodurch mein Problem behoben wurde.
quelle
Hier wurde das Testprojekt nicht zum Bau markiert:
Build -> Configuration Manager ... -> Build für Ihr Testprojekt überprüfen
quelle
Da ich mit dieser Art von Fehler hierher gekommen bin, poste ich mein Problem / meine Lösung:
Symptome:
Problem:
Es gab einen Fehler im Code, der eine Ausnahme in einem anderen Thread auslöste. Alle Testzusicherungen wurden bestanden, die Testausführung wurde jedoch abgebrochen. Ich konnte den Fehler in der "Testausgabe" (NullException) sehen.
quelle
Hatte die gleichen Symptome, in meinem Fall war es die Dotnet Core SDK-Version , die das Problem war.
Die Projekte waren auf 2.2 ausgerichtet und konnten mit 3.0 erstellt werden. Nach der Installation der neuesten 2.2 SDK-Version konnten sie ausgeführt werden.
quelle
Ich habe viele Optionen mit Visual Studio 2019 Version 16.4.6 und ausprobiert
Microsoft.VisualStudio.TestTools.UnitTesting
, aber die einzige Möglichkeit, Tests erfolgreich auszuführen, bestand darin, den nächsten Befehl in der Konsole aufzurufenTests werden im Test Explorer entdeckt, das Ergebnis ist jedoch "Nicht ausgeführt".
Das Aktualisieren von Visual Studio hat nicht geholfen.
Das Problem mit "Kein Test entspricht dem angegebenen Testfallfilter FullyQualifiedName" wurde behoben, indem Updates für die nächsten Pakete für die nächsten Pakete ausgeführt wurden:
quelle
Für mich bestand die Lösung darin, die Einstellungen für Resharper Unit Testing "Standardplattformarchitektur" in "x64" zu ändern.
quelle
Für mich hat ein Neustart von VS2017 nicht funktioniert. Ich musste sln bereinigen und fand dann eine Datei mit Tests, die nicht ausgeführt wurden, und führte nur diese Datei aus. Danach habe ich alles ausgeführt und es hat wieder normal funktioniert.
quelle
Ich hatte verschiedene Versionen der Nuget-Pakete NUnit (3.11.0) und NunitTestAdapter (3.12.0). Als ich NUnit auf 3.12.0 aktualisiert habe, hat Visual Studio Tests ausgeführt.
quelle
In meinem Fall hat es funktioniert, die MSTest-Nuget-Pakete zu aktualisieren. Konnte dieses Problem auch bei einem leeren MSTest-Projekt reproduzieren und die funktionierenden Pakete aktualisieren.
quelle
Für mich verursachte eine Eigenschaft namens TestContext in einer Basisklasse dieses Verhalten. Beispielsweise:
quelle
Ich kann an Ihren Attributen erkennen, dass Sie MSTest verwenden. Ich hatte ein ähnliches Problem: Meine Tests wurden im Test-Explorer angezeigt, aber wenn ich versuchte, sie auszuführen (entweder durch Auswahl von Alle ausführen oder einzeln auswählen), wurden sie nicht angezeigt.
Mein Problem war, dass ich das Unit-Test-Projekt manuell aus einem leeren .NET Standard Class Library-Projekt erstellt hatte. Ich hatte das
MSTest.TestFramework
NuGet-Paket installiert , aber nicht dasMSTest.TestAdapter
Paket. Sobald ich das Adapterpaket installiert hatte, liefen sie wie erwartet.Scheint im Nachhinein offensichtlich, aber wenn Sie Unit-Test-Projekte aus einer Vorlage erstellen, nehmen Sie diese Dinge als selbstverständlich an.
quelle
Es ist erwähnenswert, dass NUnit Test Adapter-Dateien manchmal im Benutzerordner C: \ Benutzer [Benutzer] \ AppData \ Local \ Temp \ VisualStudioTestExplorerExtensions \ NUnit3TestAdapter.3.8.0 / build / net35 / NUnit3.TestAdapter.dll unter Windows 10 und Dadurch funktioniert der Test Explorer nicht mehr ordnungsgemäß.
quelle
Ich benutze VS2019 mit .Net 4.7. Ich habe die NUnit-Erweiterung v3 installiert und die Testeinstellungen geändert, um X64 zu verwenden. Mein Unit-Test-Projekt ist Beliebige CPU (würde funktionieren, wenn ich es auf x64 ändern würde). Jetzt kann ich meinen Code debuggen.
quelle
Dieses Problem tritt auch auf, wenn die ausgeführte Testmethode eine StackOverflowException auslöst , wodurch der Testläufer den Testlauf abbricht und die Ausgabe erfolgt
0 tests run
.Um den Schuldigen zu finden und ihn zu lösen, setzen Sie am Anfang der mit TestInitialize und TestMethod dekorierten Methoden einen Haltepunkt. Führen Sie den Komponententest im Debug-Modus aus und gehen Sie über (F10), bis die Ausnahme ausgelöst wird.
quelle
Sie können die Fehlerausgabe Ihres Testläufers anzeigen, indem Sie das Bedienfeld Ausgabe (Ansicht -> Ausgabe) öffnen und in der Dropdown-Liste "Ausgabe anzeigen von" die Option "Tests" auswählen
Darüber hinaus , wenn Sie ReSharper installiert haben Sie eine Testdatei und schweben über den Test-Kreis neben einem Test öffnen können zusätzliche Fehler Informationen zu erhalten
Wenn Sie darauf klicken, gelangen Sie zu einem Fenster mit detaillierteren Informationen. Alternativ können Sie dieses Fenster öffnen, indem Sie zu Erweiterungen -> Neu gestalten -> Windows -> Explorationsergebnisse für Komponententests gehen
quelle