Warum findet Visual Studio 2012 meine Tests nicht?

221

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

Strg-Alt-Delor
quelle
Welche Version VS 2012? Sie können einen Testläufer wie TestDriven.Net herunterladen oder einen in Resharper.
Brett Allred
Ich benutze Visual Studio 2012 Ultimate.
Strg-Alt-Delor
Bitte teilen Sie die Framework-Version und die UnitTesting-Bibliotheksversion, die Sie als Referenz hinzugefügt haben
Adil
5
In meinem Fall hat das Entfernen der Datei app.config den Unit Test Explorer behoben
Chris Richner
4
Suchen Sie im Ausgabefenster nach Fehlern in der Kategorie "Test". Ich erstelle Funktionstests aus dem Release-Build und wenn ich versuche, mit dem Debug-Build (dessen DLLs sich in einer anderen Ordnerstruktur befinden) zu debuggen, erhalte ich keine Build-Fehler, sondern muss unter Tests aus dem Pulldown-Menü nachsehen. Sobald ich diese
behoben habe

Antworten:

227

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 objund binVerzeichnisse und machen Sie einen neu aufbauen.

Ourjamie
quelle
Während eine Reinigung manchmal hilft, ist es nicht das Problem. Ich habe ein Problem mit Projekten auf Netzlaufwerken. Und die Tatsache, dass Build jemals hilft, ist nur ein Symptom für ein fehlerhaftes Build-Tool.
Strg-Alt-Delor
7
Beeindruckend! Die "saubere Lösung" scheint wirklich zu funktionieren (im Gegensatz zu nur einem Umbau aller). Ich dachte, dies sei kein nützlicher Hack mehr in Visual Studio 6.0!
Dave
"Sauber" hat bei meinem Kollegen, der dieses Problem hatte, nicht funktioniert. Es funktionierte für sie, nachdem sie den gesamten Quellcode aus ihrem TFS-Arbeitsbereich gelöscht und den neuesten Stand (mit Überschreiben) erhalten hatte. Dann hat es super geklappt!
Michael R
2
Das war es für mich. In einer Lösung mit einer Mischung aus x86, Any CPU und x64 wurden die Tests eines bestimmten Projekts nicht gefunden. Ich habe die Lösung bereinigt, die Standardarchitektur der Testeinstellung geändert und neu erstellt, und dann war alles zu sehen. Es macht wirklich keinen Sinn, da beim Ändern der Architektur Tests entdeckt wurden, die unter einer anderen CPU-Architektur kompiliert wurden.
Ben H
2
Genau als ich den Standardprozessor gewechselt habe - alle meine Tests haben gezeigt. Vielen Dank dafür!
Dan aber
160

Bitte fügen Sie das Schlüsselwort public zu Ihrer Klassendefinition hinzu. Ihre Testklasse ist derzeit außerhalb ihrer eigenen Assembly nicht sichtbar.

namespace tests {
    [TestClass]
    public class SimpleTest {
        [TestMethod]
        public void Test() {
            Assert.AreEqual("a","a", "same");
        }
    }
}
Joe King
quelle
24
Habe es für mich getan, fast peinlich, dass ich es nicht alleine herausgefunden habe :)
landi
5
Ich hatte auch dieses Problem, mein Problem wurde dadurch verursacht, [TestMethod]dass es statisch war, weil anderer Code kopiert und eingefügt wurde.
Seph
2
@Seph: Meins war [TestMethod]statisch, weil das das war, was UserTest1.csdas neue Testprojekt hatte! Auch mein Problem gelöst.
Andre Luus
4
Stellen Sie sich auch nicht staticvor Ihre Methode. Ich weiß nicht, warum ich das so oft aus Gewohnheit mache.
Levininja
1
Das hat es für mich getan, interessant, wie man so viel Zeit für etwas verlieren kann, das so offensichtlich sein sollte. Vielen Dank für die Antwort Joe King
Thulani Chivandikwa
58

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.

Peter Lamberg
quelle
Ja, dies können andere Gründe sein, warum es nicht funktioniert, aber siehe unten stehende Antwort, warum es bei mir nicht funktioniert hat. (Freigegebene Ordner sind standardmäßig deaktiviert) Wenn Sie uns mitteilen können, wie dies geändert werden soll, gebe ich Ihnen einige Punkte.
Strg-Alt-Delor
Es gibt keinen Prozessor wie einen x64, aber ich denke, Microsoft verwendet diesen Begriff für den x86-64 / amd64 / x86e. Es gibt auch kein x86, nur die x86-Familie. Das x steht für das Unbekannte, also wären die Mitglieder der x64-Familie 164, 264, 364… ODER war das x86 ein 86-Bit-Prozessor.
Strg-Alt-Delor
danke für deine antwort, es hilft mir (ich habe von x86 Builds auf x64 Builds
gewechselt
Auch in VS 2015 funktionierte das Öffnen des Test Explorer-Fensters. Schön, dass ich Tests auch über die Kommandozeile ausführen kann.
Bryan
32

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!

dnnyz
quelle
1
Auch über NuGet erhältlichInstall-Package NUnitTestAdapter
Darren Hale
Danke @DarrenHale. Bei der Suche nach diesem Paket in NuGet habe ich auch ein Bundle namens NUnit TestAdapter gefunden, das NUnit 2.6.4 Framework enthält .
Ray
18

Nach meiner jüngsten Erfahrung haben alle oben genannten Punkte nicht funktioniert. Meine Testmethode

public async void ListCaseReplace() { ... }

wurde nicht angezeigt, aber gut kompiliert. Als ich das asyncSchlüsselwort entfernte, wurde der Test im Test Explorer angezeigt. Dies liegt daran, dass async voides sich um eine "Feuer-und-Vergessen" -Methode handelt. Machen Sie die Methode async Taskund 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.

Mond Ritter
quelle
2
Ich habe eine Weile gebraucht, um das herauszufinden. Ich habe einige Methoden überarbeitet, um asynchron zu sein, und nur das Schlüsselwort zu den Tests hinzugefügt. Erst als ich damit einen neuen Komponententest codierte, bemerkte ich, dass auch die anderen Tests fehlten. Ich habe diese Antwort gefunden , die erklärt, warum dies passiert.
Julealgon
12

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

 caspol -m -ag 1.2 -url file:///H:/* FullTrust

So überprüfen oder listen Sie vorhandene vertrauenswürdige Speicherorte auf:

 caspol -lg
Taras Alenin
quelle
Diese Antwort wird vom Fragesteller nicht überprüft, da ich kein Interesse mehr an der Antwort habe. Wenn es für Sie funktioniert (oder nicht), fügen Sie unten einen Kommentar hinzu.
Strg-Alt-Delor
6
@richard Sie akzeptieren also eine Antwort, die Sie nicht überprüft haben, und stimmen andere Antworten ab, die Lösungen für verschiedene Ursachen Ihres Problems beschreiben? .... das ist komisch!
Stephan Bauer
1
Dies stellte sich für mich als Problem heraus, aber nicht als Lösung. Ich habe alles lokal verschoben und alle Tests wurden gefunden! Vielen Dank!
Travis Swientek
1
CasPol.exefinden 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.aspx
EpicVoyage
Das war auch das Problem für mich. So ärgerlich, dass VS sie nicht aufhob, sondern keinen Hinweis auf die Ursache gab!
Kaybee99
10

Ein 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

tim
quelle
6

Ich hatte das gleiche Problem. In meinem Fall wurde es durch ein Privateigentum verursacht TestContext.

Das Ändern auf Folgendes hat geholfen:

public TestContext TestContext
{
    get;
    set;
}

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.

Stephan Bauer
quelle
OK, die gleichen Symptome, also wird das Abstimmen entfernt, wenn Sie klar machen, was Sie geändert haben (von was).
Strg-Alt-Delor
1
Ich hatte genau das gleiche, ich folgte dem kompletten Thread, kam dann zu diesem und brachte mich auf die Idee, ihn öffentlich zu machen, Bingo: Meine neuen Tests erschienen. Ich verstehe frühere Kommentare, aber ... da dieser uns von Google bringt ... ist dies der Thread, den Sie lesen sollten, wenn keine Tests angezeigt werden.
Edelwasser
1
Dies war die Ursache meines Problems. Ich hatte ein Feld für die Abhängigkeitsschnittstelle als privates Feld. Du bist ein Lebensretter!
Alex
6

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.

Dracocephalum
quelle
6

Schnelle Checkliste zur Lösung einiger häufig auftretender Testprobleme. Stelle sicher das:

  1. Testklasse und Testmethoden sind public
  2. Testklasse hat [TestClass]Attribut
  3. Testmethoden haben [TestMethod]Attribute

Wenn dies nicht hilft, versuchen Sie, die Lösung zu bereinigen, neu zu erstellen und Visual Studio neu zu starten.

SoftwareFactor
quelle
Dadurch werden die Probleme der meisten Besucher dieser Frage behoben und die meisten Antworten zusammengefasst, das Problem in der Frage wird jedoch nicht behandelt.
Strg-Alt-Delor
1
Danke dir. UTA001: TestClass attribute defined on non-public class
Jarek Przygódzki
6

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.

Edward Olamisan
quelle
3
Hat auch für mich gearbeitet! Ich denke, das ist ein separates Thema.
Justin Morgan
2
Hey das funktioniert Mann. Vielen Dank. Gibt es eine Problemumgehung, damit es funktioniert, ohne als Administrator ausgeführt zu werden?
Sriram Sakthivel
2
Entschuldigung, ich denke nicht, dass es eine gute Lösung ist, als Administrator zu arbeiten. Es sei denn, es gibt Beweise dafür, dass dies der einzige Weg ist.
Strg-Alt-Delor
Als Administrator zu laufen ist normalerweise kein großes Problem. Eines der Probleme ist jedoch, dass Sie das Workitem nicht an Outlook senden können.
Edward Olamisan
Habe deine Antwort bearbeitet, um auf einen verwandten SO-Beitrag zu verlinken. Ich hoffe, es macht dir nichts aus. Ich stimme jedoch Sriram und Richard zu. Obwohl dies funktioniert, ist es eine Problemumgehung, keine Lösung. Warum es überhaupt funktioniert, scheint unklar.
Steven Jeuris
4

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.

CSharp
quelle
Ich denke nicht, dass dies das gleiche Problem ist.
Strg-Alt-Delor
3
Ich denke , es IST das gleiche Problem, es ist nur verursacht durch etwas anderes.
Stephan Bauer
2

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.

Adil
quelle
Ich habe das versucht, beide arbeiten mit Nunit. Aber dieses Mal versuche ich, die Tests eines anderen auszuführen, die mit geschrieben Microsoft.VisualStudio.TestTools.UnitTestingwurden. Irgendeine Idee, was ich sonst noch falsch mache?
Strg-Alt-Delor
Macht keinen Unterschied ... Manchmal wird der Komponententest nicht entdeckt. Wenn Sie also den Test-Explorer öffnen und eine Lösung erstellen, wird der Komponententest in einer Weile angezeigt. Vielleicht wissen Sie das bereits. ..
Adil
2
Ich wollte nur sicherstellen, dass Sie eine Express-Version oder eine Version ohne Testtools verwenden. Haben Sie versucht, einen Testläufer eines Drittanbieters zu installieren?
Brett Allred
2

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.

Todd Carter
quelle
In meinem Fall hat die app.config auch das Erscheinen des Unit-Tests beendet. Nach dem Löschen der app.config und dem erneuten Erstellen des Testprojekts waren sie endlich zurück!
Chris Richner
2

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/dependencyIdentityRestumleitung in meiner app.config hinterlassen. Ich musste es korrigieren. Ich habe es herausgefunden, indem ich auf das OutputFenster geschaut und " Tests" in der Dropdown-Liste ausgewählt habe. Die Fehlermeldung war da. Das war ein Schmerz ... Ich hoffe, es hilft jemand anderem.

Nestor
quelle
2

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.

Jake_Howard
quelle
2

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

mortey
quelle
2

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.

Shiran Jayawardena
quelle
@srebella Gut, dass Sie dieses Problem behoben haben. Ich habe Tage damit verbracht, dieses Problem zu lösen. Bitte teilen Sie Ihre Erfahrungen mit der Gemeinschaft. Bitte setzen Sie diese Antwort nach oben, wenn Sie glauben, dass es funktioniert. Danke :-)
Shiran Jayawardena
1

Ich habe VS 2012 auf das neueste Update aktualisiert. dh Visual Studio Update 3. Das hat das Problem für mich behoben.

Sam
quelle
1

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.

Zack Weiner
quelle
1

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:

    Failed to initialize client proxy: 
    could not connect to vstest.discoveryengine.x86.exe

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:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Ich habe die Versionsnummer von 11.0 auf 12.0 geändert:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

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.

Ladygargar
quelle
1

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.

Jan Dolejsi
quelle
oder überspringen Sie einfach die Signaturprüfung auf Ihrem lokalen Computer durch sn -Vr *,<public key token>als Administrator in der VS-Entwickler-Eingabeaufforderung
Silas
1

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

huddy72
quelle
1

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.

Mike Perrenoud
quelle
1

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

Joshua Starner
quelle
1

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:

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

  2. Installieren Sie den NUnit-Testadapter einschließlich NUnit 2.6.3 Framework

  3. Lösung reinigen / neu erstellen

  4. Öffnen Sie Test> Test Explorer> Alle ausführen

Ich sehe alle Testfälle

Hoffe das hilft

user2831855
quelle
1

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.

Craig Fisher
quelle
1

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.

mshsayem
quelle
1

Tests mögen keine asynchronen Methoden. Z.B:

    [TestMethod]
    public async void TestMethod1()
    {
        TestLib oLib = new TestLib();
        var bTest = await oLib.Authenticate();

    }

Danach:

    [TestMethod]
    public void TestAuth()
    {
        TestMethod1();
    }

    public async void TestMethod1()
    {
        TestLib oLib = new TestLib();
        var bTest = await oLib.Authenticate();

    }

Es sah den Test.

DaBlue
quelle
Eine bessere Antwort ist[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(); }
Robert Green MBA
3
"Tests mögen keine asynchronen Methoden" ist falsch . "Tests mögen keine asynchronen Void- Methoden" ist wahr , und die Lösung besteht einfach darin, eine Testmethode als asynchrone Aufgabe zu deklarieren .
Massimiliano Kraus
1

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.

simonlchilds
quelle