it-swarm.com.de

Warum findet Visual Studio 2012 meine Tests nicht?

Ich habe einige Tests, die den eingebauten Microsoft.VisualStudio.TestTools.UnitTesting Verwenden, 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] Vor den Testmethoden und der Referenz Microsoft.VisualStudio.QualityTools.UnitTestFramework (Version 10.0.0.0, Laufzeitversion v2.0.50727 ). Ich habe versucht, Dot-Net Framework 3.5, 4 und 4.5 andere geben einen Fehler bei der Neuausrichtung.

Ich habe versucht, die Lösung und das Projekt zu erstellen. Test Explorer hat die Meldung `Erstellen Sie Ihre Lösung, um alle verfügbaren Tests zu ermitteln. Klicken Sie auf "Alles 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, dies zu befolgen: http://msdn.Microsoft.com/en-US/library/ms379625%28v=VS.80%29.aspx aber ohne Erfolg: Ich stecke fest Wenn Sie zum Klicken mit der rechten Maustaste aufgefordert werden, wählen Sie create tests. Es gibt kein create tests.


Ich habe diesen Test (er wird kompiliert, aber im Test-Explorer nicht 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, weiß aber noch nicht, wie ich es umgehen soll. (etwas über die Sicherheitseinstellung vielleicht).

220
ctrl-alt-delor

Das Problem war, dass der Test-Runner so konfiguriert ist, dass keine Tests von einem Remote-Laufwerk ausgeführt werden. Als ich das Projekt auf ein lokales Laufwerk kopierte, funktionierte es einwandfrei, aber ich brauchte es auf einem freigegebenen Laufwerk (kann mich nicht erinnern warum).

Ich habe gelesen, dass es so konfiguriert werden kann, dass es von einem gemeinsam genutzten Laufwerk aus funktioniert, aber ich musste es noch nicht tun, als ich die Lösung entdeckte, die ich unter Debian auf MonoDevelop umgestellt hatte.

0
ctrl-alt-delor

Ich hatte die gleichen Symptome, aber unter verschiedenen Umständen.

Ich musste der Lösung von Peter Lamberg einen weiteren Schritt hinzufügen - Bereinigen 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 Umstieg auf x64 sind alle meine Unit-Tests verschwunden.

Ich musste ins Testmenü -> Testeinstellung - Standardprozessorarchitektur -> x64.

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 ziemlich 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 die Verzeichnisse obj und bin löschen und neu erstellen.

227
Ourjamie

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");
        }
    }
}
160
Joe King

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 dann das Projekt mit den Tests neu erstellen, sollten die Tests im Test-Explorer angezeigt werden.

Edit: Wie Ourjamie weiter unten ausführte, kann es auch hilfreich sein, einen sauberen Build zu erstellen. Darüber hinaus ist hier noch eine Sache, auf die ich gestoßen bin:

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.

58
Peter Lamberg

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!

32
dnnyz

Nach meiner jüngsten Erfahrung hat all das nicht funktioniert. Meine Testmethode

public async void ListCaseReplace() { ... }

wurde nicht angezeigt, aber gut kompiliert. Als ich das Schlüsselwort async entfernt habe, wurde der Test im Test Explorer angezeigt. Das ist bacause async void ist eine "Feuer-und-Vergessen" -Methode. Machen Sie die Methode async Task und du bekommst deinen test zurück!

Wenn die Konfiguration des Testprojekts nicht auf "Build" gesetzt ist, werden auch keine Tests angezeigt. Konfigurationsmanager> Überprüfen Sie den zu erstellenden Test.

18
MoonKnight

Da sich das Projekt auf einem freigegebenen Laufwerk befindet, muss das Original-Poster angegeben werden. VS.NET muss dem Netzwerkspeicherort vertrauen, bevor es Ihre Testassemblys lädt und ausführt. Lesen Sie diesen Blog-Beitrag .

Damit VS.NET Elemente einer Netzwerkfreigabe laden kann, müssen sie vertrauenswürdigen Speicherorten hinzugefügt werden. So fügen Sie einen Speicherort zu einer vollständigen Vertrauenslistenausführung hinzu (natürlich nach Bedarf für Ihre Umgebung ändern):

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

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

 caspol -lg
12
Taras Alenin

Ein Problem, das ich festgestellt habe, ist, dass Tests im Test-Explorer nicht gefunden werden (es wird nichts angezeigt), wenn die Lösung von einem Netzwerklaufwerk/Netzwerkspeicherort/gemeinsam genutzten Laufwerk ausgeführt wird

Sie können dies beheben, indem Sie eine Umgebungsvariable hinzufügen.

COMPLUS_LoadFromRemoteSources und setzen Sie den Wert auf 1

10
tim

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

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

6
SoftwareFactor

Ich habe den Fehler erhalten: "Failed to initialize client proxy: could not connect to vstest.discoveryengine.exe."

Versuchen Sie, Visual Studio als Administrator auszuführen. Das hat bei mir geklappt.

Es gibt einen anderen Stapelüberlauf-Beitrag, der diesen Fehler behandelt , und die gleiche Lösung funktioniert für sie. Die Frage bleibt, warum das funktioniert.

6
Edward Olamisan

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

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 der betroffenen Testklasse im Test Explorer zur Verfügung.

6
Stephan Bauer

Ich bin auf dasselbe Problem gestoßen, als ich versucht habe, die Lösung auf einer Netzwerkfreigabe zu öffnen. In diesem Fall würde 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, auf dem sich die Netzwerkfreigabe befindet, zur Liste "Sites" hinzu.

Danach habe ich die Lösung neu kompiliert und nun erschienen Tests. Dies sollte der Antwort von @BigT ziemlich ähnlich sein.

6
dracocephalum

Ich habe manchmal die gleichen Symptome.

Was ich getan habe ist:
1. Das Test Explorer-Fenster wurde geschlossen
2. Die Lösung gereinigt
3. Erstellen Sie die Lösung neu
4. Starten Sie das Test Explorer-Fenster über Test -> Windows -> Test Explorer neu.

Und ich habe meinen Test im Test Explorer Fenster bekommen.

4
CSharp

In meinem Fall war es etwas anderes. Ich hatte ein Paket installiert und deinstalliert und eine frühere Version neu installiert. Das hinterließ einen Rest configuration/runtime/asssemblyBinding/dependencyIdentity in meiner app.config umleiten. Ich musste es korrigieren. Ich habe es herausgefunden, indem ich mir das Fenster Output angesehen und "Tests" in der Dropdown-Liste ausgewählt habe. Die Fehlermeldung war da. Das war ein Schmerz ... Ich hoffe, es hilft jemand anderem.

2
Nestor

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 auf X64 ändern. Schritte sind: 1. Testmenü -> Testeinstellung - Standardprozessorarchitektur -> x64. 2. Clean Build 3. Build 4. Wenn immer noch keine Tests angezeigt wurden. 5. Gehen Sie zu Tools  Extensions and Updates und installieren Sie die NUnit- und Specflow-Bibliotheken. 6. Clean Build 7. Build

Dann wird normalerweise test im Test Editor angezeigt.

2

Von der Menüleiste oben ...

Test -> Ausführen -> Alle Tests

Sie können auch alle Tests im Test Explorer anzeigen (Test -> Windows -> Test Explorer).

Wenn Sie in VS 2012 etwas verpassen, durchsuchen Sie es mit der Schnellstartleiste oben rechts (Strg + Q) "Test".

Hoffe das hilft.

2
Adil

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.

Hoffe das hilft jemandem.

2
Jake_Howard

Ich habe festgestellt, dass die beste Möglichkeit zur Behebung dieses Problems darin besteht, eine .proj-msbuild-Datei zu erstellen, Ihre Unit-Test-Projekte, bei denen ein Problem vorliegt, in diese Datei aufzunehmen 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 auftauchte - ansonsten hat das Testprojekt einwandfrei funktioniert. Sie werden auch indirekte Referenzprobleme mit dieser Methode finden. Sobald Sie den Unit-Test über die Befehlszeile mit mstest ausführen können, können Sie eine saubere Lösung erstellen, die Lösung neu erstellen und den Test ordnungsgemäß ermitteln.

2
Todd Carter

Ich weiß, dass dies eine ältere Frage ist, aber in Visual Studio 2015 gab es Probleme, bei denen meine neu erstellte Testklasse nicht erkannt wurde. Versuchte alles. Was letztendlich das Problem war, war, dass die Klasse nicht "in das Projekt einbezogen" wurde. Ich fand dies nur beim Neustart von Visual Studio und bemerkte, dass meine Testklasse nicht da war. Als ich versteckte Dateien zeigte, sah ich, dass sie ebenso wie andere Klassen, die ich geschrieben hatte, nicht enthalten waren. Ich hoffe, das hilft

2
mortey

Überprüfen Sie die referenzierten Assemblys auf Assemblys, für die "Lokal kopieren" auf "Falsch" 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 Lokal kopieren = "Falsch" markiert ist, kann die Assembly aufgrund fehlender Abhängigkeiten und nicht geladen werden Ihre Tests werden nach einem Build nicht geladen.

1
Joshua Starner

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 liefen jedoch nicht. Versucht verschiedene Lösungen hier gepostet, hat nicht funktioniert.

Schließlich stellte ich fest, dass ich in der Testklasse eine private Methode hatte, die die erste Methode innerhalb der Klasse war. Ich habe gerade die private Methode nach einer Testmethode verschoben. So, jetzt eine Methode mit [TestMethod] Attribut ist die erste Methode innerhalb der Klasse. Seltsam, aber jetzt funktioniert es.

Hoffe das hilft irgendwann mal jemandem.

1
mshsayem

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 wurden meine Testfälle nicht mehr aufgelistet.

Fix:

  1. Deinstallieren Sie den Nuget and Nuget Test Adapter

    ein. Gehen Sie zu Extras> Nuget> Nuget-Paket-Manager> Nuget-Paket für Lösung verwalten

    b. Liste installierter Pakete

    c. Klicken Sie auf "Verwalten"

    d. Deaktivieren Sie Ihre Projekte

  2. Installieren Sie den NUnit Test Adapter einschließlich NUnit 2.6.3 Framework

  3. Lösung reinigen/neu aufbauen

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

Ich sehe alle Testfälle

Hoffe das hilft

1
user2831855

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 hat den Test gesehen.

1
DaBlue

Beim Versuch, die Lösung auf einer Netzwerkfreigabe in VS2013 Ultimate zu öffnen, ist das gleiche Problem aufgetreten.

Ich habe das Problem durch Einschalten behoben

Systemsteuerung -> Internetoptionen -> Registerkarte "Sicherheit" -> Klicken Sie auf "Lokales Intranet", klicken Sie auf Websites und vergewissern Sie sich, dass "Intranet-Netzwerk automatisch erkennen" aktiviert ist.

1
huddy72

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 dem Öffnen im Jahr 2013 wurden im Test-Explorer im Unit-Test-Projekt keine Tests angezeigt. Jedes Mal, wenn ich versuchte, Tests auszuführen oder zu debuggen, schlug dies fehl und sagte Folgendes im Ausgabefenster:

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

Ich bemerkte auch, dass beim Debuggen der Tests eine Instanz von Visual Studio 2012 gestartet wurde. Dies verdeutlichte, dass das Unit Tests-Projekt immer noch auf 2012 verweist. Als ich die Referenz für das Testprojekt betrachtete, 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 werden alle Tests gefunden und laufen einwandfrei.

1
ladygargar

Dies sind alles gute Antworten, aber es gibt noch einen Grund, den ich kenne. Ich bin nur 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 meiner Tests verschwanden.

1
Mike Perrenoud

Stellen Sie sicher, dass Ihr Testprojekt nicht auf nur Verzögerungszeichen in Ihren Projekteigenschaften -> Signieren eingestellt ist. Wenn dies der Fall ist, heben Sie die Auswahl auf und führen Sie einen sauberen Neuaufbau durch.

1
Jan Dolejsi

Keine der Lösungen hier hat mir geholfen. Die Tests würden für eine Lösung nicht gefunden, während eine andere Lösung, die auf dieselben Projekte verweist, einwandfrei funktioniert hat. Ich habe das endlich gelöst, indem ich die Datei solutionname.v12.suo gelöscht habe.

1
Craig Fisher

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

1
sam

Für mich war die Lösung etwas unkomplizierter.

Ich habe 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 über die zugehörigen CS-Dateien zu verfügen, 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 musste VS diese automatisch generierten Codebehind-Dateien neu generieren, indem die Feature-Dateien einfach aus dem Projekt ausgeschlossen und dann erneut eingeschlossen wurden.

Danach konnte ich die Tests im Testexplorer anzeigen.

1
Zack Weiner

Meine Antwort hinzufügen, da dies das Top-Ergebnis bei Google ist.

Ich verwende Visual Studio 2015 und (unwissentlich - ich habe gerade Install-Package NUnit) habe 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.

Das Installieren des NUnit3-Testadapters über Extras> Erweiterungen und Updates hat dies für mich behoben.

1
simonlchilds

Nachdem ich gegoogelt hatte "Visual Studio kann keine Tests sehen", brachte es mich hierher, also dachte ich, ich würde mein Problem teilen. Ich konnte meine Lösung bauen und die Tests existierten, aber ich konnte sie nicht sehen ! Es stellt sich heraus, dass es eine Besonderheit der IDE war, die das Problem verursacht hat. Eine Erklärung und Fehlerbehebung finden Sie im Bild unten:

enter image description here

0
Ben Power

Hier ist eine weitere Option, die aufgrund von Benutzerfehlern/Dummheiten in die Liste aufgenommen werden sollte. Ich habe verschiedene Antworten auf diese Frage ausprobiert und festgestellt, dass mein Testprojekt im Konfigurations-Manager (Menü "Erstellen", Konfigurations-Manager) deaktiviert wurde, damit es nicht aktiviert wurde gebaut>. <

Wenn du dies in der Hoffnung postest, dass es jemandem erspart, der ein oder zwei Stunden verschwendet, wie ich es gerade getan habe!

0
Matt

Ein weiteres Problem, das möglicherweise verhindert, dass Tests entdeckt werden, normalerweise mit einer Meldung im Test-Ausgabefenster wie:

 Fehler beim Konfigurieren der Einstellungen für das RUN-Einstellungs-Plugin 'VSTest Run Configuration', da die folgende Ausnahme ausgelöst wurde: 
 'Beim Parsen von EntityName ist ein Fehler aufgetreten. Zeile 1, Position 8. '
 Bitte wenden Sie sich an den Autor des Plugins. 

Dies kann durch Zeichen in Ihrem Pfad oder durch Dateinamen verursacht werden, die maskiert werden müssten, um als XML analysiert zu werden. Insbesondere das Zeichen & sowie < und > sind in Verzeichnis- oder Dateinamen nicht zulässig. Dies führt dazu, dass die Testerkennung umkippt und die Tests nicht identifiziert werden. Ich könnte die Tests jedoch weiterhin manuell mit Resharper ausführen, indem ich auf den Rand klicke.

0
Patrick Allwood

Ich hatte das gleiche Problem in Visual Studio 2013 Update 4 unter Windows 7 SP1 x64 mit einem Testprojekt, das auf die Plattformkonfiguration "Any CPU" abzielte.

Das Problem bestand darin, dass das Testprojekt tatsächlich den Namen "Tests" trug und beim (erneuten) Erstellen des Projekts nicht mehr angezeigt wurde.

Nachdem ich das Projekt beispielsweise in "MyProject.Tests" umbenannt habe, verschwinden die Tests nicht mehr.

0
Rami A.

Ich habe das alles ausprobiert und mein Visual Studio 2012 hat die Tests immer noch nicht angezeigt. Am Ende bin ich zu einer Testklasse gegangen und habe festgestellt, dass sie einen RootNamespace.FolderName hat, und ich habe den .FolderName entfernt, um die Klasse in den Root-Namespace zu setzen, und Bingo. Alle Tests sind zurückgekommen!

Kann nicht verstehen, warum es mit dem ursprünglichen Namespace bis zum anderen Tag gut funktionierte.

0
David K

Visual Studio Professional 2012, Update 4 hier. Durch das Vorhandensein von Interop-Funktionsdefinitionen (DllImport/extern) im selben Projekt wie Testklassen wurde der Test Explorer verwirrt. Durch Verschieben von Interop in ein separates Projekt wurde das Problem behoben.

0
mp31415

Visual Studio 2015 (v.14 .....) - hier dasselbe Problem

Ursache: Verschiedene Versionen von NUnit und NUnit Test Adapter In meinem Fall hatte ich die neuesten Versionen von NUnit (3.5) und NUnit Test Adapter, aber der Test Adapter war nicht der richtige. Für NUnit 3 und höher muss ein NUnit3TestAdapter verwendet werden

Lösung: Deinstallierte den "fehlerhaften" NUnint-Testadapter und installierte den UNit3TestAdapter v.3.5.0 (der neueste ist 3.6.0, hat ihn aber nicht verwendet, um ihn wie NUnit zu halten)

Nach dem Rebuild der Lösung tauchten Tests auf :)

0
Angel

Am einfachsten ist es, diese Dateien per Drag & Drop aus dem Datei-Explorer in das Testprojekt zu ziehen. Erstellen Sie das Projekt erneut und Sie können loslegen!

OR

Öffne das .csproj Datei Ihres Testprojekts in einem Texteditor und geben Sie den zu kompilierenden Dateinamen manuell ein. Suchen Sie in der Datei nach dem Tag Compile und fügen Sie die Datei hinzu, die Sie ausführen möchten.

<ItemGroup>
    <Compile Include="TestSettings.cs" />
    <Compile Include="TestLibrary.cs" />
    <Compile Include="UnitTest1.cs" />
</ItemGroup>

Fügen Sie das Compile-Tag für Ihre Datei hinzu und speichern Sie es. Führen Sie nun die Tests durch. Ihre Datei mit Unit-Test wird erkannt und ausgeführt.

0
Teja

Da sich keine dieser Antworten mit der Ursache befasst, auf die ich bei diesem Problem gestoßen bin, werde ich meine Antwort auch hier hinzufügen.

In meinem Fall handelte es sich um ein Problem beim Einfügen von Code. Wir hatten ein TestProjectA, in dem es bestimmte Arten von Tests gibt, die wir in ein eigenes Testprojekt ziehen möchten - TestProjectB. Das Problem bestand nun darin, dass Tests in TestProjectA zwar weiterhin einwandfrei angezeigt werden, die Tests in dem neuen TestProjectB jedoch nicht in VS Test Explorer angezeigt werden - es sei denn, Sie erstellen speziell TestProjectB oder klicken Sie dort mit der rechten Maustaste auf einen Test und führen Sie ihn aus.

Die Ursache war, dass beim Kopieren des Codes einige Namespaces nicht aktualisiert wurden:

  • Es gibt eine TestMethodA() in TestClassA im Namespace TestProjectA.ModuleA Mit Dateipfad \TestProjectA\TestClassA.cs
  • Sowie eine TestMethodA() in TestClassB im Namespace TestProjectA.ModuleA Mit Dateipfad \TestProjectB\TestClassB.cs

Daher druckt Visual Studio eine Meldung im Ausgabefenster aus, dass die Test-ID für diese beiden gleich ist, und zeigt im Test-Explorer TestProjectA und nicht TestProjectB an, da die Test-ID zwischen den beiden Projekten kollidiert . Das Problem wurde behoben, indem der Namespace für TestProjectB.ModuleB Auf \TestProjectB\TestClassB.cs Korrigiert wurde.

0
gspindles

Dieses Problem scheint so viele verschiedene Lösungen zu haben, dass ich auch meine eigenen hinzufügen kann:

Schließen Sie Visual Studio

Benennen Sie C:\Benutzer\Benutzername\AppData\Local\Microsoft\VisualStudio\12.0\ComponentModelCache in ComponentModelCache.old um

Führen Sie Visual Studio aus, und der Komponentencache wird neu erstellt.

0
benPearce

Dieser hat mich nur gebissen. Ich habe meinem Projekt einen Test hinzugefügt, konnte ihn jedoch nicht in Test Explorer anzeigen. Meine alten Tests haben sich alle gezeigt. Schließlich stellte ich fest, dass ich nur eine bestimmte Wiedergabeliste anzeigte und den neuen Test nicht zur Wiedergabeliste hinzugefügt hatte. Wenn Sie Wiedergabelisten verwenden, wählen Sie "Alle Tests" und prüfen Sie, ob VS Ihre Tests findet und im Test-Explorer anzeigt. Dann können Sie sie auch der gewünschten Wiedergabeliste hinzufügen.

0
JNygren

Wir verwendeten xunit und die Lösung funktionierte für mich und das Team löschte den Ordner% TEMP%\VisualStudioTestExplorerExtensions

Lies diesen Thread.

Warum erkennt der Visual Studio 2015/2017 Test Runner meine xUnit v2-Tests nicht?

0
Si Zi

Ich habe alle vorhandenen Antworten gelesen und festgestellt, dass meine (xUnit) -Tests nicht entdeckt wurden, weil ich "nicht verwendete" Referenzen entfernt hatte, insbesondere xunit.execution.desktop. Die Neuinstallation des xUnit-Pakets behebt das Problem in meinem Fall.

0
WynandB

In meinem Fall hatte ich 3 Testprojekte, die mit Visual Studio 2017 erstellt wurden (aber ich denke, das spielt keine Rolle), und nur zwei davon wurden vom Test Explorer entdeckt. Mir wurde klar, dass das dritte Projekt eine andere Version des Microsoft.VisualStudio.QualityTools.UnitTestFramework dll. Ich habe es im NuGet Manager aktualisiert und die Tests erschienen.

0

In VS2013 Ultimate ist das gleiche Problem aufgetreten. Mein Problem war, dass ich einen Windows-Dienst erstellte und vergaß, ihn zu deinstallieren. Der Dienst lief also und VS konnte nicht auf eine der DLLs zugreifen, was dazu führte, dass die gesamte Testsuite überhaupt nicht geladen wurde.

0
user3194973

Ein Problem, auf das ich wiederholt gestoßen bin, ist, Visual Studio (explizit) nicht als Administrator unter Windows 8+ auszuführen. Ich habe einige der aufgeführten Vorschläge ausprobiert, aber die Komponententests wurden erst angezeigt, als ich VS 2013 als Administrator ausführte (obwohl meine Verknüpfung so eingestellt ist, dass VS auf diese Weise geöffnet wird, entweder indem ich die Lösungsdatei öffne oder manchmal auf die Verknüpfung klicke, die nicht vorhanden ist) kann eigentlich nicht als admin geöffnet werden).

0
Aggromonster

Ich habe die Methodendeklaration kopiert, die einen Eingabe-String-Parameter enthielt. Ich habe vergessen, den Eingabeparameter zu löschen.

  public void ExtractValueFromLineTest(string input) {}//test not discovered because of the string input param
0
Ryan