Ich habe einige Tests, die das eingebaute verwenden Microsoft.VisualStudio.TestTools.UnitTesting
, aber nicht zum Laufen bringen können.
Ich benutze Visual Studio 2012 Ultimate.
Ich habe eine Lösung von zwei Projekten; Man hat Tests using Microsoft.VisualStudio.TestTools.UnitTesting
, [TestClass]
vor der Klasse, [TestMethod]
bevor die Testmethoden und die Referenz Microsoft.VisualStudio.QualityTools.UnitTestFramework
(Version 10.0.0.0, Runtime - Version v2.0.50727). Ich habe Dot-Net Framework 3.5, 4 und 4.5 ausprobiert. Andere geben einen Fehler beim erneuten Targeting aus.
Ich habe versucht, die Lösung und das Projekt zu erstellen. Der Test Explorer hat die Meldung "Erstellen Sie Ihre Lösung, um alle verfügbaren Tests zu ermitteln. Klicken Sie auf "Alle ausführen", um alle Tests in Ihrer Lösung zu erstellen, zu ermitteln und auszuführen.
Die Frage ist also: Wie bekomme ich Visual Studio, um die Tests zu finden?
Habe auch versucht, dem zu folgen: http://msdn.microsoft.com/en-US/library/ms379625%28v=VS.80%29.aspx, aber ohne Erfolg: Ich stecke im Abschnitt fest, wenn ich darum gebeten werde Rechtsklick und auswählen create tests
. Es gibt keine create tests
.
Ich habe diesen Test (er wird kompiliert, aber nicht im Test Explorer angezeigt):
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace tests {
[TestClass]
public class SimpleTest {
[TestMethod]
public void Test() {
Assert.AreEqual("a","a", "same");
}
}
}
Ich habe jetzt festgestellt (siehe gelöschte Antwort unten), dass es sich um ein freigegebenes Laufwerk handelt, aber ich weiß noch nicht, wie ich es umgehen soll. (etwas über die Sicherheitseinstellung vielleicht).
quelle
Antworten:
Ich hatte die gleichen Symptome, aber unter verschiedenen Umständen.
Ich musste Peter Lambergs Lösung um einen weiteren Schritt erweitern: Reinigen Sie Ihre Lösung / Ihr Projekt.
Mein unittestes Projekt zielt auf x64 ab. Als ich das Projekt erstellte, war es ursprünglich auf x86 ausgerichtet.
Nach dem Wechsel zu x64 verschwanden alle meine Unit-Tests.
Ich musste zum Testmenü -> Testeinstellung - Standardprozessorarchitektur -> x64 gehen.
Sie sind immer noch nicht aufgetaucht.
Habe einen Build gemacht.
Immer noch nicht aufgetaucht.
Endlich ein Clean gemacht
Dann tauchten sie auf.
Ich finde Clean Solution und Clean sehr nützlich, um die Lösungen zum Ballspielen zu bringen, wenn sich die Einstellungen geändert haben. Manchmal muss ich bis zum Äußersten gehen und löschen Sie die
obj
undbin
Verzeichnisse und machen Sie einen neu aufbauen.quelle
Bitte fügen Sie das Schlüsselwort public zu Ihrer Klassendefinition hinzu. Ihre Testklasse ist derzeit außerhalb ihrer eigenen Assembly nicht sichtbar.
quelle
[TestMethod]
dass es statisch war, weil anderer Code kopiert und eingefügt wurde.[TestMethod]
statisch, weil das das war, wasUserTest1.cs
das neue Testprojekt hatte! Auch mein Problem gelöst.static
vor Ihre Methode. Ich weiß nicht, warum ich das so oft aus Gewohnheit mache.Das funktioniert manchmal.
Überprüfen Sie, ob die Prozessorarchitektur im Menü Test mit der übereinstimmt, mit der Sie die Lösung erstellt haben.
Test -> Testeinstellungen -> Standardprozessorarchitektur -> x86 / x64
Stellen Sie, wie in anderen Beiträgen erwähnt, sicher, dass das Fenster Test Explorer geöffnet ist. Test -> Windows -> Test Explorer
Wenn Sie das Projekt dann mit den Tests neu erstellen, sollten die Tests im Test Explorer angezeigt werden.
Bearbeiten: Wie Ourjamie weiter unten ausgeführt hat, kann es auch hilfreich sein, einen sauberen Build zu erstellen. Darüber hinaus ist mir noch eines begegnet:
Das Kontrollkästchen "Erstellen" wurde in Configuration Manager für ein neues Testprojekt deaktiviert, das ich unter der Lösung erstellt hatte.
Gehen Sie zu Build -> Configuration Manager. Stellen Sie sicher, dass in Ihrem Testprojekt das Kontrollkästchen Build für alle Lösungskonfigurationen und Lösungsplattformen aktiviert ist.
quelle
Ich habe Visual Studio 2012 und konnte die Tests im Test Explorer nicht sehen.
Also habe ich folgendes installiert: NUnit Test Adapter
Das hat das Problem für mich behoben!
quelle
Install-Package NUnitTestAdapter
Nach meiner jüngsten Erfahrung haben alle oben genannten Punkte nicht funktioniert. Meine Testmethode
wurde nicht angezeigt, aber gut kompiliert. Als ich das
async
Schlüsselwort entfernte, wurde der Test im Test Explorer angezeigt. Dies liegt daran, dassasync void
es sich um eine "Feuer-und-Vergessen" -Methode handelt. Machen Sie die Methodeasync Task
und Sie erhalten Ihren Test zurück!Wenn die Konfiguration des Testprojekts nicht auf "Erstellen" eingestellt ist, werden außerdem keine Tests angezeigt. Konfigurationsmanager> Überprüfen Sie Ihren zu erstellenden Test.
quelle
Da sich das Projekt auf einem gemeinsam genutzten Laufwerk befindet, wie auf dem Originalplakat angegeben. VS.NET muss dem Netzwerkspeicherort vertrauen, bevor Ihre Testassemblys geladen und ausgeführt werden. Lesen Sie diesen Blog-Beitrag .
Damit VS.NET Dinge einer Netzwerkfreigabe laden kann, müssen diese (Freigaben) vertrauenswürdigen Speicherorten hinzugefügt werden. So fügen Sie einem vollständigen Vertrauenslistenlauf einen Speicherort hinzu (ändern Sie ihn offensichtlich nach Bedarf für Ihre Umgebung):
So überprüfen oder listen Sie vorhandene vertrauenswürdige Speicherorte auf:
quelle
CasPol.exe
finden Sie unter%windir%\Microsoft.NET\Framework[64]\[version]
. Stellen Sie sicher, dass Sie die Richtlinie für die richtige Architektur festlegen. Quelle: msdn.microsoft.com/en-us/library/cb6t8dtz%28v=vs.100%29.aspxEin Problem, das ich festgestellt habe, ist, dass Tests im Test-Explorer nicht gefunden werden (nichts wird angezeigt), wenn die Lösung von einem Netzwerklaufwerk / Netzwerkspeicherort / freigegebenem Laufwerk ausgeführt wird
Sie können dies beheben, indem Sie eine Umgebungsvariable hinzufügen.
COMPLUS_LoadFromRemoteSources und setzen Sie den Wert auf 1
quelle
Ich hatte das gleiche Problem. In meinem Fall wurde es durch ein Privateigentum verursacht
TestContext
.Das Ändern auf Folgendes hat geholfen:
Nach dem Reinigen und Erstellen der Lösung (wie in der Antwort von @Ourjamie beschrieben) standen die Testmethoden in der betroffenen Testklasse im Test Explorer zur Verfügung.
quelle
Beim Versuch, die Lösung auf einer Netzwerkfreigabe zu öffnen, ist dasselbe Problem aufgetreten. In diesem Fall wird vom Test Explorer kein Komponententest erkannt. Die Lösung stellt sich heraus als:
Systemsteuerung -> Internetoptionen -> Registerkarte "Sicherheit" -> Klicken Sie auf "Intranet" und fügen Sie die Server-IP-Adresse oder den Hostnamen mit der Netzwerkfreigabe zur Liste "Standorte" hinzu.
Danach habe ich die Lösung neu kompiliert und nun erschienen Tests. Dies sollte der Antwort von @BigT ziemlich ähnlich sein.
quelle
Schnelle Checkliste zur Lösung einiger häufig auftretender Testprobleme. Stelle sicher das:
public
[TestClass]
Attribut[TestMethod]
AttributeWenn dies nicht hilft, versuchen Sie, die Lösung zu bereinigen, neu zu erstellen und Visual Studio neu zu starten.
quelle
UTA001: TestClass attribute defined on non-public class
Ich habe den Fehler bekommen:
"Failed to initialize client proxy: could not connect to vstest.discoveryengine.exe."
Versuchen Sie, Visual Studio als Administrator auszuführen. Das hat bei mir funktioniert.
Es gibt einen weiteren Stapelüberlauf-Beitrag, in dem dieser Fehler behandelt wird , und dieselbe Lösung funktioniert für sie. Die Frage bleibt, warum dies funktioniert.
quelle
Ich bekomme manchmal die gleichen Symptome.
Was ich getan habe, ist:
1. Das Test Explorer-Fenster geschlossen
2. Die Lösung bereinigt
3. Die Lösung neu erstellen
4. Das Test Explorer-Fenster unter Test -> Windows -> Test Explorer neu gestartet .
Und ich habe meinen Test im Test Explorer-Fenster erhalten.
quelle
Von der Menüleiste oben ...
Test -> Ausführen -> Alle Tests
Sie können alle Tests auch im Test Explorer anzeigen (Test -> Windows -> Test Explorer).
Wenn Sie bei VS 2012 etwas verpassen, versuchen Sie es mit der Schnellstartleiste oben rechts (Strg + Q) "Test".
Hoffe das hilft.
quelle
Microsoft.VisualStudio.TestTools.UnitTesting
wurden. Irgendeine Idee, was ich sonst noch falsch mache?Ich habe festgestellt, dass der beste Weg zur Behebung dieses Problems darin besteht, eine .proj msbuild-Datei zu erstellen und Ihre Unit-Test-Projekte, bei denen Sie ein Problem haben, in diese Datei einzufügen und die Tests mit der Befehlszeilenversion von mstest auszuführen. Ich habe in meiner app.config ein kleines Konfigurationsproblem gefunden, das nur beim Ausführen der Tests von mstest auftrat - ansonsten wurde das Testprojekt einwandfrei erstellt. Auch bei dieser Methode finden Sie indirekte Referenzprobleme. Sobald Sie den Unit-Test mit mstest über die Befehlszeile ausführen können, können Sie eine saubere Lösung durchführen, die Lösung neu erstellen und Ihr Test sollte ordnungsgemäß erkannt werden.
quelle
In meinem Fall war es etwas anderes. Ich hatte ein Paket installiert und es dann deinstalliert und eine frühere Version neu installiert. Das hat eine
configuration/runtime/asssemblyBinding/dependencyIdentity
Restumleitung in meiner app.config hinterlassen. Ich musste es korrigieren. Ich habe es herausgefunden, indem ich auf dasOutput
Fenster geschaut und "Tests
" in der Dropdown-Liste ausgewählt habe. Die Fehlermeldung war da. Das war ein Schmerz ... Ich hoffe, es hilft jemand anderem.quelle
Dies ist mehr, um Menschen zu helfen, die hier landen, als die Frage des OP zu beantworten:
Versuchen Sie, das visuelle Studio zu schließen und wieder zu öffnen. Das hat der Trick für mich getan.
Hoffe das hilft jemandem.
quelle
Ich weiß, dass dies eine ältere Frage ist, aber mit Visual Studio 2015 hatte ich Probleme, bei denen meine neu erstellte Testklasse nicht erkannt wurde. Versuchte alles. Das Problem war schließlich, dass die Klasse nicht "in das Projekt einbezogen" wurde. Ich habe dies nur beim Neustart von Visual Studio festgestellt und festgestellt, dass meine Testklasse nicht vorhanden war. Als ich versteckte Dateien zeigte, sah ich, dass andere Klassen, die ich geschrieben hatte, nicht enthalten waren. hoffentlich hilft das
quelle
Dieses Problem trat häufig auf, als ich versuchte, die Lösung auf einem anderen PC zu erstellen.
Ich benutze auch NUnit und Specflow. Standardmäßig zielt mein Testprojekt auf X86 ab. Ich muss dies jedoch in X64 ändern. Die Schritte sind 1. Testmenü -> Testeinstellung - Standardprozessorarchitektur -> x64. 2. Clean Build 3. Build 4. Wenn noch keine Tests angezeigt wurden. 5. Gehen Sie zu Extras Erweiterungen und Updates und installieren Sie dann die NUnit- und Specflow-Bibliotheken. 6. Clean Build 7. Build
Dann wird der Test normalerweise im Testeditor angezeigt.
quelle
Ich habe VS 2012 auf das neueste Update aktualisiert. dh Visual Studio Update 3. Das hat das Problem für mich behoben.
quelle
Für mich war die Lösung nur ein bisschen weniger kompliziert.
Ich hatte gerade eine vorhandene Lösung auf meinen Computer gebracht (von gitHub geklont) und wir verfolgen nicht die automatisch generierten CS-Dateien, die Visual Studio erstellt hat. (Für jede Feature-Datei gibt es eine CS-Datei mit demselben Namen)
Wenn ich die Lösung öffne, ohne dass die zugehörigen CS-Dateien vorhanden sind, kann ich tatsächlich zu den gebundenen Methoden navigieren. Es sah also so aus, als wäre der Specflow ordnungsgemäß verkabelt, aber ich konnte die Testnamen im Test-Explorer nicht anzeigen.
Bei diesem Problem wurde VS gezwungen, diese automatisch generierten Codebehind-Dateien neu zu generieren, indem die Feature-Dateien einfach aus dem Projekt ausgeschlossen und dann wieder aufgenommen wurden.
Danach konnte ich die Tests im Test Explorer anzeigen.
quelle
Ich hatte dieses Problem beim Upgrade meiner Lösung von Microsoft Visual Studio 2012 Express für Web auf Microsoft Visual Studio 2013.
Ich hatte 2012 ein Unit-Test-Projekt erstellt, und nach der Eröffnung im Jahr 2013 wurden im Unit-Test-Projekt keine Tests im Test-Explorer angezeigt. Jedes Mal, wenn ich versuchte, Tests auszuführen oder zu debuggen, schlug dies fehl und sagte im Ausgabefenster Folgendes:
Ich habe auch festgestellt, dass beim Debuggen der Tests eine Instanz von Visual Studio 2012 gestartet wurde. Dies hat mich darauf hingewiesen, dass das Unit Tests-Projekt immer noch auf 2012 verweist. Als ich mir die Referenz zum Testprojekt ansah, stellte ich fest, dass es auf das falsche Microsoft Visual abzielte Studio Unit Test Framework-DLL für diese Version von Visual Studio:
Ich habe die Versionsnummer von 11.0 auf 12.0 geändert:
Ich habe alles neu erstellt und dies hat das Problem behoben - alle Tests wurden im Test Explorer gefunden und jetzt sind alle Tests gefunden und laufen perfekt.
quelle
Stellen Sie sicher, dass Ihr Testprojekt in Ihren Projekteigenschaften nicht auf Verzögerungszeichen eingestellt ist -> Signieren. Wenn dies der Fall ist, deaktivieren Sie die Option und führen Sie einen sauberen Neuaufbau durch.
quelle
sn -Vr *,<public key token>
als Administrator in der VS-Entwickler-EingabeaufforderungIch habe das gleiche Problem festgestellt, als ich versucht habe, die Lösung auf einer Netzwerkfreigabe in VS2013 Ultimate zu öffnen.
Ich habe das Problem durch Einschalten behoben
Systemsteuerung -> Internetoptionen -> Registerkarte "Sicherheit" -> Klicken Sie auf "Lokales Intranet", klicken Sie auf Websites und stellen Sie sicher, dass "Intranet-Netzwerk automatisch erkennen" aktiviert ist.
quelle
Dies sind alles gute Antworten, aber es gibt noch einen Grund, den ich kenne; Ich bin gerade darauf gestoßen. In einem meiner Tests hatte ich eine ReSharper-Nachricht, die darauf hinwies, dass ich eine nicht verwendete Privatklasse hatte. Es war eine Klasse, die ich in einem bevorstehenden Test verwenden werde. Dies führte tatsächlich dazu, dass alle meine Tests verschwanden.
quelle
Überprüfen Sie referenzierte Assemblys auf Assemblys, für die "Copy Local" möglicherweise auf "False" gesetzt ist.
Wenn Ihr Testprojekt in einem eigenen Ordner erstellt wird (z. B. bin / Debug) und das Projekt von einer anderen Assembly abhängt und eine dieser Assemblys in der Referenzliste als Copy Local = "False" gekennzeichnet ist, kann die Assembly aufgrund fehlender Abhängigkeiten und nicht geladen werden Ihre Tests werden nach einem Build nicht geladen.
quelle
Es sieht so aus, als ob NUnit Framework 2.6.4 mit NUnit Test Adapter nicht gut funktioniert. Auf der Website wird erwähnt, dass der Testadapter nur mit NUnit Framework 2.6.3 funktioniert.
Dies war mein Problem: 1. Ich hatte NUnit und NUnit Test Adapter separat über Nuget im VS2012 heruntergeladen. Irgendwie wurde NUnit auf 2.6.4 aktualisiert. Plötzlich sah ich meine Testfälle nicht mehr aufgelistet.
Fix:
Deinstallieren Sie Nuget und Nuget Test Adapter
ein. Gehen Sie zu Extras> Nuget> Nuget Pkg Manager> Nuget Pkg für Lösung verwalten
b. Installierte Pakete auflisten
c. Klicken Sie auf Verwalten
d. Deaktivieren Sie Ihre Projekte
Installieren Sie den NUnit-Testadapter einschließlich NUnit 2.6.3 Framework
Lösung reinigen / neu erstellen
Öffnen Sie Test> Test Explorer> Alle ausführen
Ich sehe alle Testfälle
Hoffe das hilft
quelle
Keine der Lösungen hier hat mir geholfen. Die Tests wurden für eine Lösung nicht gefunden, während eine andere Lösung, die auf dieselben Projekte verweist, einwandfrei funktioniert hat. Ich habe dies schließlich gelöst, indem ich die Datei solutionname.v12.suo gelöscht habe.
quelle
Ich hatte das gleiche Problem, aber ein bisschen anders.
Ich habe Visual Studio 2012 verwendet. Aus irgendeinem Grund wurden nur die Tests der ursprünglich generierten Datei ausgeführt. Tests in einer anderen Datei wurden jedoch nicht ausgeführt. Verschiedene hier veröffentlichte Lösungen ausprobiert, hat nicht funktioniert.
Schließlich stellte ich fest, dass ich eine private Methode in der Testklasse hatte, die die erste Methode innerhalb der Klasse war. Ich habe gerade die private Methode nach einer Testmethode verschoben . Jetzt ist eine Methode mit
[TestMethod]
Attribut die erste Methode innerhalb der Klasse. Seltsam, aber jetzt funktioniert es.Hoffe das hilft jemandem eines Tages.
quelle
Tests mögen keine asynchronen Methoden. Z.B:
Danach:
Es sah den Test.
quelle
[Test] public void XamarinExampleTest() { // This workaround is necessary on Xamarin, // which doesn't support async unit test methods. Task.Run(async () => { // Actual test code here. }).GetAwaiter().GetResult(); }
Das Hinzufügen meiner Antwort, da dies das beste Ergebnis bei Google ist.
Ich verwende Visual Studio 2015 und habe (ohne es zu wissen - ich habe es gerade ausgeführt
Install-Package NUnit
) das NUnit3-Paket NuGet in meinem Testprojekt installiert. Ich hatte bereits die NUnit Test Adapter-Erweiterung installiert und meine Tests wurden immer noch nicht angezeigt.Die Installation des NUnit3-Testadapters über Extras> Erweiterungen und Updates hat dies für mich behoben.
quelle