Visual Studio 2015 oder 2017 erkennt keine Komponententests

165

EDIT 2016-10-19:

Die ursprüngliche Frage betraf ein spezifisches Problem für VS2015 CTP6 mit dem XUnit-Testläufer. Aus den Antworten geht hervor, dass es bei der Erkennung von Komponententests in Visual Studio ein viel umfassenderes Problem gibt, das in vielen verschiedenen Situationen auftreten kann. Ich habe meine Frage aufgeräumt, um dies zu reflektieren.

Ich habe auch ein Skript in meine eigene Antwort aufgenommen, das ich bis heute verwende, um ähnliche Probleme zu lösen, wenn sie auftreten.

Viele andere Antworten haben sich ebenfalls als hilfreich erwiesen, um die Feinheiten des VS-Testläufers besser zu verstehen. Ich schätze, dass die Leute immer noch ihre Lösungen teilen!


Ursprüngliche Frage 10.04.2015:

Seit gestern erkennt mein Visual Studio Test Explorer keine Tests für eines meiner Projekte. Die grüne Ladeleiste wird auch nach dem Bau nicht angezeigt.

Wenn ich zum Visual Studio-Test-Explorer gehe und auf "Alle ausführen" klicke oder wenn ich mit der rechten Maustaste auf eine Testmethode klicke und "Tests ausführen" auswähle, wird in meinem Ausgabefenster Folgendes angezeigt:

Could not load file or assembly 'Microsoft.VisualStudio.Web.ProjectSystem, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.

Ich bin Visual Studio 2015 CTP 6 unter Windows 10 Pro Technical Preview, Build 10041. Die .NET Framework Version zu Materie scheint nicht läuft - es geschieht auf 4.0, 4.5.2und 4.6.

Ich habe es mit den folgenden Test-Frameworks versucht und alle geben das gleiche Verhalten:

  • Microsoft.VisualStudio.QualityTools.UnitTestFramework v14.0.22609.0
  • xunit v2.1.0-beta1-build2945 mit xunit.runner.visualstudio v2.1.0-beta1-build1051
  • NUnit v2.6.4 mit NUnitTestAdapter v2.0.0

Ich habe auf GitHub (xunit) ein Problem gefunden, das ähnlich zu sein schien: Tests können nicht entdeckt werden # 295 , mit diesem Kommentar des xunit-Teams:

Beachten Sie, dass Visual Studio 2015 CTP 5 von vielen Personen mit Unit-Tests im Allgemeinen (nicht nur xUnit.net) als fehlerhaft gemeldet wurde. Erwarten Sie also nicht, dass dies funktioniert.

Stellen Sie außerdem sicher, dass Sie den Runner-Cache von Visual Studio bereinigt haben. Wenn es beschädigt wird, verhält sich Visual Studio dauerhaft schlecht, bis es gelöscht wird. Um den Cache zu leeren, fahren Sie alle Instanzen von Visual Studio herunter und löschen Sie dann den Ordner% TEMP% \ VisualStudioTestExplorerExtensions (ehrlich gesagt würde es wahrscheinlich nicht schaden, alles in% TEMP% zu löschen, was gelöscht werden kann).

Ich habe versucht, den Ordner zu löschen %TEMP%\VisualStudioTestExplorerExtensions. Leider hat das das Problem nicht behoben.

Ich bemerkte , dass ReSharper tatsächlich ist die Lage , einige Tests zu entdecken. Es funktioniert nur für die VS- und NUnit-Tests, nicht für xunit.

Es muss eine Art temporären oder Cache-Ordner geben, den ich löschen muss, aber ich weiß, dass Visual Studio viele davon hat und nicht alle ohne unerwünschte Nebenwirkungen gelöscht werden können.

Fred Kleuver
quelle
3
Ich bin so froh, dass ich darauf gestoßen bin, dass es mich daran erinnert, warum ich einen Testläufer eines Drittanbieters verwende (in meinem Fall ncrunch). Ich habe mstest vor langer Zeit aus ähnlichen Gründen aufgegeben. Natürlich ist das keine Lösung, wenn Sie mit mstest stecken ...
Abel
Verwandte: stackoverflow.com/questions/35103781/…
Ruben Bartelink
Mit VS 2017 haben unglaublich genug eine Bereinigung meiner temporären und lokalen Appdata VS2017-bezogenen Ordner, eine Close + Reload + Clean-Lösung und ein Windows-Neustart nicht geholfen. Überraschenderweise hat ein einfaches "Unload - Reload" -Projekt nur für eines meiner Testprojekte dazu beigetragen, dass die Testerkennung nicht mehr hängen blieb. Ich verwende kein Unit-Test-Paket von Drittanbietern.
Pac0
Für einige Leute könnte dies interessant oder relevanter sein (ich denke nicht, dass ich es als Antwort hinzufügen sollte): Keine Quelle im Test Explorer verfügbar - github.com/Microsoft/testfx/issues/274
hB0
Dies könnte ein Fix für jemanden sein stackoverflow.com/a/58019304/1566372
Rady

Antworten:

154

Zu meiner Überraschung löste das Löschen von temporären Dateien im %TEMP%Verzeichnis das Problem für mich.

Hinweis: Dieser Pfad befindet sich im Allgemeinen bei C:\Users\(yourusername)\AppData\Local\Temp

Wie bei @ Warren-P enthalten, können Sie zum temporären Ordner navigieren, indem Sie das %temp%Startmenü aufrufen, oder "Datei-Explorer" starten und %temp%in die Adressleiste eingeben .

RobM
quelle
30
Oder Sie geben einfach %TEMP%das Start-Start-Menü ein und es findet Ihren temporären Ordner für Sie, ohne dass Sie den Wert von temp erraten.
Warren P
65
@ ZéCarlos Jede Anwendung, die wichtige Daten im %TEMP%Verzeichnis speichert, verdient es, nicht mehr zu funktionieren.
Mark Pattison
25
Keine Verlegenheit für Sie, es ist ein völliger Fehler von Microsoft, dass Sie so lächerliche Schritte unternehmen müssen, um eine IDE über 1000 USD am Laufen zu halten.
MushyPeas
8
Arbeitete auch für mich in VS2017!
Lorentz Vedeler
6
Wenn Sie Bedenken haben, das gesamte temporäre Verzeichnis zu löschen, scheint das Problem nur durch Löschen des Unterverzeichnisses Temp \ VisualStudioTestExplorerExtensions behoben zu werden.
Mike Walsh
90

Es kann sein, dass Ihr Code mit x64 kompiliert wird und daher die Standardprozessorarchitektur als X64 aktivieren muss.

Test > Test Settings > Default Processor Architecture > X64
Dac Toan Ho
quelle
3
Das hat mich ein paar Mal gebissen. Selbst nach all den Jahren kann ich mir noch keinen guten Grund vorstellen, warum die Testeinstellungen standardmäßig nicht so ausgewählt sind, dass sie automatisch mit der aktuellen Build-Konfiguration des Projekts übereinstimmen. Kommt mir einfach wie eine sinnlose Doppelkonfiguration vor.
Neutrino
1
Windows Update und / oder VS Update ändert die Standardarchitektur, ohne es Ihnen zu sagen .... aaargh
Rupweb
Und 4 Jahre später ist dies immer noch hilfreich. Vielen Dank
Oscar O.
67
  • Überprüfen Sie, ob NUnit Test Adapter 2/3 in VisualStudio installiert ist.
    (Tools>Extensions and Updates )

  • Stellen Sie sicher, dass die richtige Prozessorarchitektur ausgewählt ist:
    (Test>Test Settings>Default Processor Architecture)

MichiBack
quelle
2
Das hat endlich bei mir funktioniert. Nachdem ich alles andere ausprobiert habe.
BradStell
Sie fühlen sich wie ein Idiot, der zuerst in temporären Ordnern herumgräbt, wenn die Erweiterung noch nicht einmal installiert ist. Vielen Dank für die Veröffentlichung.
NightOwl888
2
Überprüfen Sie auch, ob Sie die richtige Erweiterung verwenden. Für NUnit 2.x und NUnit 3.x gibt es eine separate.
pmbanka
1
Wenn Sie auf .NET Standard abzielen, müssen Sie tatsächlich den NuGet-Paket- NUnit- Testadapter anstelle einer VSIX-Erweiterung installieren. github.com/nunit/docs/wiki/.NET-Core-and-.NET-Standard
m93a
Versuchen Sie, NUnit3TestAdapter von Nuget anstelle von VSIX abzurufen. Das ist der bessere Ansatz
Ravella
33

BEARBEITEN 19.10.2016 (PowerShell-Skript)

Dieses Problem tritt immer wieder auf. Ich habe ein kleines PowerShell-Snippet geschrieben, um das Löschen des entsprechenden Cache- / temporären Ordners / der Dateien für mich zu automatisieren. Ich teile es hier für zukünftige Leser:

@(
"$env:TEMP"
"$env:LOCALAPPDATA\Microsoft\UnitTest"
"$env:LOCALAPPDATA\Microsoft\VisualStudio\14.0\1033\SpecificFolderCache.xml"
"$env:LOCALAPPDATA\Microsoft\VisualStudio\14.0\1033\ProjectTemplateMRU.xml"
"$env:LOCALAPPDATA\Microsoft\VisualStudio\14.0\ComponentModelCache"
"$env:LOCALAPPDATA\Microsoft\VisualStudio\14.0\Designer\ShadowCache"
"$env:LOCALAPPDATA\Microsoft\VisualStudio\14.0\ImageLibrary\cache"
"$env:LOCALAPPDATA\Microsoft\VisualStudio Services\6.0\Cache"
"$env:LOCALAPPDATA\Microsoft\WebsiteCache"
"$env:LOCALAPPDATA\NuGet\Cache"
) |% { Remove-Item -Path $_ -Recurse -Force }

Stellen Sie sicher, dass Sie Visual Studio vorher schließen, und es ist wahrscheinlich eine gute Idee, danach neu zu starten.

Das Löschen des TEMP-Ordners ist möglicherweise nicht erforderlich und in einigen Fällen sogar unerwünscht. Ich würde daher empfehlen, es zu versuchen, ohne den TEMP-Ordner zuerst zu löschen. Lass einfach das weg "$env:TEMP".

Ursprüngliche Antwort 2015-04-12

Das Problem wurde nach einer gründlichen Bereinigung der temporären / Cache-Ordner im Zusammenhang mit Visual Studio "gelöst".

Da ich nicht die Zeit hatte, alles einzeln durchzugehen und dann dazwischen zu testen, weiß ich leider nicht, welches das Problem tatsächlich verursacht hat.

Dies sind die genauen Schritte, die ich unternommen habe:

  1. Visual Studio geschlossen
  2. Verwendet CCleaner zum Löschen von System- und Browserdateien temp/ -ordnern
  3. Manuelle Löschung / Löschung der folgenden Dateien / Ordner:

    • %USERPROFILE%\AppData\Local\assembly
    • %USERPROFILE%\AppData\Local\Microsoft\UnitTest
    • %USERPROFILE%\AppData\Local\Microsoft\VisualStudio\14.0\1033\SpecificFolderCache.xml
    • %USERPROFILE%\AppData\Local\Microsoft\VisualStudio\14.0\1033\ProjectTemplateMRU.xml
    • %USERPROFILE%\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache
    • %USERPROFILE%\AppData\Local\Microsoft\VisualStudio\14.0\Designer\ShadowCache
    • %USERPROFILE%\AppData\Local\Microsoft\VisualStudio\14.0\ImageLibrary\cache
    • %USERPROFILE%\AppData\Local\Microsoft\VisualStudio Services\6.0\Cache
    • %USERPROFILE%\AppData\Local\Microsoft\WebsiteCache
    • %USERPROFILE%\AppData\Local\NuGet\Cache
    • %USERPROFILE%\AppData\Local\Temp
Fred Kleuver
quelle
Vielen Dank, ich habe nach dem Löschen der von Ihnen beschriebenen Ordner Microsoft \ VisualStudio \ 14.0 \ und Microsoft \ VisualStudio Services \ 6.0 \ Cache für mich gearbeitet.
Niels van Reijmersdal
Sicher meinst du \Microsoft\VisualStudio\14.0\ImageLibrary\ImageLibrary.cache?
Mateen Ulhaq
2
Ich habe alles aus% TEMP% entfernt und es funktioniert nicht, aber wenn ich das Verzeichnis 'VisualStudioTestExplorerExtensions' (leer) gelesen habe, funktioniert alles perfekt :-) (Es gibt eine Antwort mit dieser Lösung auf der Unterseite am aktuellen Tag)
nilphilus
Ich möchte bestätigen, dass diese Lösung für mich mit VS2015 Update 3 und Resharper 10 funktioniert. Sie müssen jedoch neu starten, um das Wunder zu sehen
Quoc Nguyen
1
Ich habe nur eine Datei gelöscht \ AppData \ Local \ Microsoft \ VisualStudio \ 14.0 \ 1033 \ SpecificFolderCache.xml es hepls
Serhii Kuzmychov
21

Ein Grund für dieses Problem ist, dass Ihre Testklasse nicht öffentlich ist. MSTest entdeckt nur Tests aus öffentlichen Klassen.

AfshinS
quelle
1
Obwohl dies nicht 100% korrekt ist und ich eine nicht öffentliche Klasse hatte, die gut funktionierte, funktionierte der Unit-Test irgendwann nicht mehr. Als ich die Unit-Test-Klasse in public änderte, funktionierte sie wieder. Stelle dir das vor!
SashaArz
Das hat es für mich gelöst. Standardmäßig fügt Visual Studio Testklassen ohne das öffentliche Schlüsselwort hinzu, die erst angezeigt werden, wenn ich sie veröffentlicht habe.
Marc Fearby
13

Wenn Sie in Visual Studio 2015 (Update 3) die Tests im Test-Explorer anhängen möchten, müssen Sie den NUnit- Testadapter installieren. Laden Sie den Adapter von der Registerkarte Extras-> Erweiterung und Updates-> Online herunter (Sie müssen nach dem Adapter suchen ) -> Herunterladen . Durch einen Neustart von Visual Studio können Sie die Änderung für das Testframework anzeigen.

Pankti Shah
quelle
2
Nach Ihren Anweisungen habe ich nach "nunit" gesucht und "NUnit 3 Test Adapter" gefunden, der nach "Download" (Installation) mein Problem behoben hat. Wenn Sie im Internet nach diesem Problem suchen, finden Sie einen anderen SO-Artikel unter dem Link
Adam Cox
Dies ist in einigen Szenarien besser als der Nuget-Paketmanager, da die Konfigurationsdateien nicht geändert werden
GY_
1
@GY_ aber wenn Sie auf .NET Core oder Standard abzielen, benötigen Sie tatsächlich das NuGet-Paket. Überprüfen Sie meine Antwort unten: stackoverflow.com/a/47460221/1137334
m93a
Du rettest mein Leben ! Danke, ich habe so viele Lösungen ausprobiert und es hat nicht funktioniert. Meins war Google Test Adapter.
Erman
9

Ich habe keine vollständige Antwort darauf, aber ich habe einige Dinge durch Spielen mit einem Testprojekt festgestellt:

  1. Das xunit.runner.aspnet : 2.0.0-aspnet-beta4, was anscheinend Teil der offiziellen Beta4-Version von Aspnet5 ist, funktioniert in Visual Studio nicht.
  2. Stattdessen funktionieren "xunit": "2.1.0-*"und "xunit-runner.dnx": "2.1.0-*"Pakete in Visual Studio.
  3. Damit VS die Tests erkennen kann, MUSS Ihr Projekt einen EINZELNEN Befehl mit dem Namen "test" haben, der "xunit.runner.dnx" ausführt. Das Hinzufügen zusätzlicher Befehle kann zu einer Unterbrechung führen.
  4. Wenn Ihr Test Explorer-Fenster immer noch leer ist, ENTFERNEN Sie den Befehl "test" aus Ihrem Projekt, erstellen Sie die Lösung neu und fügen Sie den Befehl "test" wieder zur Datei project.json hinzu.
  5. Das Löschen aller Caches gemäß dem Vorschlag von @ Fred-Kleuver kann hilfreich sein, aber ich habe nicht alle Schritte isoliert ausgeführt, daher bin ich mir nicht sicher.

Dies ist gemäß VS 2015 CTP 6 aktuell und verwendet die Beta4-Versionen, nicht die Tageszeitungen.

Avi Cherry
quelle
1
Okay, ich habe bestätigt (indem ich es von einem Kollegen versuchen ließ), dass das obige Update kein Löschen der Caches oder temporären Dateien erfordert.
Avi Cherry
Oben steht "Stattdessen verwenden Sie" xunit ":" 2.1.0- "und" xunit-running.dnx ":" 2.1.0- "Pakete funktionieren in Visual Studio." Das funktioniert, danke!
Gillardo
Übrigens scheint als Folge davon jetzt in VS 2015 ab den aktuellen Versionen alles gut zu funktionieren. Es ist kein Aufwand erforderlich, um neue Tests oder ähnliches zu erhalten.
Avi Cherry
1
Schließlich gibt es jetzt eine richtige Anleitung von MS, welche Versionen von xunit mit welchen DNX-Versionen genau verwendet werden sollen: xunit.github.io/docs/getting-started-dnx.html
Avi Cherry
9

Ich hatte einen Fall, in dem einige Tests nicht abgeholt wurden, weil ich sie asyncwie folgt gemacht hatte:

public async void This_IsMy_UnitTest()

Das Problem war, dass ich vergessen hatte, sie zurückgeben zu lassen Taskund nicht, voidals ich die Umschaltung durchführte. Man würde denken, dass dies einen Fehler oder einen fehlgeschlagenen Test verursachen würde, aber nein. Die Unit-Tests in dieser Klasse wurden vollständig ignoriert und taten so, als ob sie nicht existierten.

Erst nach ungefähr 3 Bereinigungen und Builds + Neustart VS.NETsah ich den Testlauf und schlug fehl, was darauf hinweist, dass ich vergessen habe, den TaskRückgabetyp hinzuzufügen :

public async Task This_IsMy_UnitTest()

Nach dem Update wurden die Unit-Tests gefunden und funktionierten korrekt. Dies mag ein Randfall sein, aber asyncTests für die Verwendung awaitinnerhalb, aber ohne korrekte Signatur können dasselbe Problem verursachen, und es ist nicht das erste Mal, dass ich dies getan habe.

atconway
quelle
Das Problem wurde für mich gelöst!
Aimal Khan
8

Gehen Sie zum Nuget-Paketmanager und laden Sie den Nunit-Adapter wie folgt herunter.

Geben Sie hier die Bildbeschreibung ein

Debendra Dash
quelle
Vielen Dank, in meinem Fall hatte ich NUnitTestAdapter anstelle von NUnit3TestAdapter. Das hat mein Problem gelöst.
Pixel
Das Hinzufügen des Nuget-Pakets NUnit3TestAdapter zu einer Lösung oder zu einem Projekt würde das Problem nicht für alle anderen Lösungen im Allgemeinen beheben, sondern nur für diejenigen, zu denen es hinzugefügt wurde. Um dies allgemein für alle Lösungen / Projekte zu tun, fügen Sie die Erweiterung des NUnit 3-Testadapters zu Ihrem Visual Studio hinzu, wie unter stackoverflow.com/a/45748818/1300390
Umar T.,
6

Ich hatte das gleiche Pronlem, aber der Ordner "% TEMP% \ VisualStudioTestExplorerExtensions" war auf meinem Computer nicht vorhanden. Als ich die Beiträge las, hatte ich die Idee, es zu erstellen und es funktioniert. Der Test Explorer kann jetzt alle meine Tests anzeigen. Vielen Dank.

Vinci
quelle
6

Starten Sie einfach Visual Studio neu und führen Sie im Test Explorer "Alle ausführen" aus. Alle meine Tests werden dann erkannt.

lukyer
quelle
1
Mir ist auch aufgefallen, dass das Schließen des Test-Explorers und das erneute Öffnen und Auswählen von Alle ausführen funktioniert ebenfalls. Ich bin mir noch nicht sicher, ob es immer funktioniert, aber diesmal hat es funktioniert.
Rich
5

In meinem Fall (Visual Studio Enterprise 2015 14.0.25425.01 Update 3, Resharper 2016.2) musste ich nur eine saubere Lösung über das Menü Erstellen erstellen. Wenn Sie die Lösung neu erstellen, wird der Test-Explorer "aufgeweckt" und findet alle Tests erneut.

sammy34
quelle
5

In meinem Fall bestand die Lösung darin, nur die NUnit 3-Testadapter- Erweiterung auf meinem Visual Studio 2015 zu installieren .

'Erweiterungen und Updates' finden Sie unter 'Tools'

Umar T.
quelle
Wie bringt Ihre Antwort einen Mehrwert für die Frage? Hast du sie gelesen? Es gibt bereits zwei Antworten, die genau dieselbe Lösung empfehlen: stackoverflow.com/a/41364951/6305294 , stackoverflow.com/a/35043380/6305294
Alex
2
Nun, ich habe das erste gelesen (dh stackoverflow.com/a/41364951/6305294), aber das unterscheidet sich von meiner Antwort, da dies vorschlägt, einer Lösung oder einem Projekt das NUnit Adapter-Nuget-Paket hinzuzufügen, das das Problem nicht beheben würde Problem für alle anderen Lösungen im Allgemeinen. In Bezug auf den zweiten muss ich zugeben, dass ich ihn nicht gesehen habe. Vielleicht hilft das Hinzufügen eines Screenshots dem Blickfang, wenn zwei viele Antworten auf eine Frage vorliegen
Umar T.
4

In meinem Fall war das Problem "zwischen Stuhl und Tastatur". Ich hatte im Konfigurationsmanager zu einer Konfiguration gewechselt, die meine Unit-Test-Projekte beim Erstellen nicht enthielt. Das Zurückschalten auf eine Konfiguration (z. B. Debug), die alle Projekte enthält, hat das Problem behoben.

AndyZez
quelle
4

In meinem Fall ignorierte MSTest unter VS 2015 Tests mit Testnamen (dh Methodennamen), die länger als 174 Zeichen waren. Durch Kürzen des Namens konnte der Test sichtbar werden. Dies wurde durch Erraten und Überprüfen durch Manipulieren des Testnamens festgestellt.

Kenneth K.
quelle
4

Dies wird den meisten Menschen wahrscheinlich nicht helfen, aber jemand, der noch keine Erfahrung mit Unit-Tests hat, hat eine Testmethode geschrieben, die zurückgegeben wurde, boolanstatt void:

[TestMethod]
public bool TestSomething()

Ändern des Rückgabetyps, um voiddas Problem zu beheben.

Sam
quelle
Es ist immer noch interessant zu wissen, dass die Rückgabe eines Typs die Erkennung von Tests verhindert. Das wusste ich nicht.
Fred Kleuver
3

Stellen Sie sicher, dass xunit.runner.visualstudioIhr Testprojekt packages.config ein Paket enthält, das auch korrekt wiederhergestellt wurde.

Ich weiß, dass dies bei der ursprünglichen Frage nicht der Fall war, aber es könnte jemandem wie mir Zeit sparen.

pvasek
quelle
3

Ich möchte nur hinzufügen, dass ich eine ganz andere Lösung als die oben genannten gefunden habe.

Ich hatte meine Testklasse wie folgt deklariert:

[TestClass]
class ClassificationTests
{
   //unit tests
}

Sobald ich den publicModifikator zur Klasse hinzugefügt habe , hat es wie erwartet funktioniert!

Beharrlichkeit
quelle
2

Wenn Sie auf .NET Standard oder .NET Core abzielen, müssen Sie das NuGet-Paket für den NUnit-Testadapter und nicht die Erweiterung verwenden .

Es wird empfohlen, den Adapter von NuGet zu installieren, wenn Sie .NET Core- oder .NET Standard-Projekte testen. Der VSIX-Adapter unterstützt und wird .NET Core nicht unterstützen, da VSIX-Pakete nicht auf mehrere Plattformen abzielen können.

Quelle: NUnit GitHub Wiki

.

Überprüfen Sie auch die FAQ dort:

Meine Tests werden in Visual Studio 2017 nicht angezeigt?

  • Verwenden Sie das NuGet-Paket?
  • Verwenden Sie Version 3.8.0 oder eine neuere Version des NuGet-Pakets?
  • Zielen Ihre Tests auf .NET Core oder das vollständige .NET Framework ab? (siehe oben)
  • Haben Sie Microsoft.NET.Test.Sdk eine Paketreferenz hinzugefügt?
  • Haben Sie Visual Studio neu gestartet? Es ist immer noch ein bisschen temperamentvoll.

Quelle: NUnit GitHub Wiki

m93a
quelle
1

Ich hatte das gleiche Problem. Ich habe gerade das Projekt gereinigt und neu aufgebaut und konnte die fehlenden Tests sehen.

Eric
quelle
1

Kommen Sie vorbei, um meine Lösung zu teilen. Ich war unter Windows 10, Visual Studio 2015, NUnit 3.5, NUnit Test Adapter 3.6 (über NuGet, nicht die VISX-Erweiterung) und keiner meiner Tests wurde entdeckt. Mein Problem war, dass im Testprojekt meiner Lösung irgendwie eine Verknüpfung zu meinem Ordner "Dokumente" im Projektordner erstellt wurde. Ich vermute, der Testadapter hat die Verknüpfung gesehen und wurde aufgehängt, um herauszufinden, was damit zu tun ist, was dazu führte, dass Unit-Tests nicht angezeigt wurden.

Thomas Parikka
quelle
1

Durch Löschen der Datei \ AppData \ Local \ Microsoft \ VisualStudio \ 14.0 \ 1033 \ SpecificFold‌ erCache.xml wurde das Problem für mich behoben.

der_chirurg
quelle
1

Dieses Thema ist etwas veraltet, aber meine Lösung für den fehlenden Teststatus in VS2015:

Der Task-Status wird nur in der Debug-Build-Konfiguration angezeigt. Dies macht es natürlich auch unmöglich, Ihren Test über den Test-Explorer zu debuggen.

pehur
quelle
1

Ich wurde auch von diesem wunderbaren kleinen Feature gebissen und nichts, was hier beschrieben wurde, hat für mich funktioniert. Erst als ich die Build-Ausgabe noch einmal überprüfte und feststellte, dass die relevanten Projekte nicht erstellt wurden. Ein Besuch beim Konfigurationsmanager bestätigte meinen Verdacht.

Mit Visual Studio 2015 konnte ich gerne neue Projekte hinzufügen, entschied jedoch, dass es sich nicht lohnt, sie zu erstellen. Nachdem ich die Projekte zum Build hinzugefügt hatte, begann es gut zu spielen.

Robbie Dee
quelle
1

Ich habe es behoben, indem ich X64 geändert habe in: Klicken Sie mit der rechten Maustaste auf Projekt -> Eigenschaften -> Erstellen -> Plattformziel -> Beliebige CPU

Pouyan Sepahvand
quelle
1

Irgendwie sollte mein Projekt als statische Bibliothek (.lib) kompiliert werden . Nach dem Ändern in eine dynamische Bibliothek (DLL) wurden Tests von Visual Studio 2012 korrekt erkannt.

My Unit Test Project ->
Properties ->
Configuration Properties ->
General ->
Configuration Type
Maate
quelle
1

Es war so einfach für mich, das Problem zu beheben als:

  • Wählen Sie Ihr Unit Test Projekt
  • Klicken Sie im Projektmappen-Explorer auf die Schaltfläche "Alle Dateien anzeigen". Neue temporäre Dateien werden im Dateibaum des Projektmappen-Explorers unter "obj \ x86 \ Debug" angezeigt.
  • Löschen Sie diese temporären Dateien und erstellen Sie das Projekt neu.
  • Wiederholte Tests und arbeitete!.
mggSoft
quelle
1

Wir hatten das gleiche Problem. Wir haben eine große VS 2015-Lösung mit mehreren C # -Projekten und noch mehr Testprojekten.

Die Testentdeckung von Resharper funktionierte einwandfrei, aber VS Test Explorer schlug kläglich fehl.

Es stellt sich heraus, dass die Projekte nicht dieselbe Version von MsTest TestFramework und TestAdapter hatten und dass sie manchmal NuGets und manchmal gute alte Referenzen verwendeten, und dass dies anscheinend nicht unterstützt wird (so viel für eine so teure IDE).

Durch Entfernen aller Microsoft.VisualStudio.Test * -Referenzen und anschließendes Hinzufügen / Aktualisieren der beiden MSTest NuGets wurde das Problem behoben.

TommyD
quelle
1

Ich habe dieses Problem gelöst, indem ich festgestellt habe , dass sich das Ziel-Framework für mein Testprojekt von dem getesteten Projekt unterscheidet. Ja, ich habe dieses Problem verursacht, indem ich das Zielframework von der Standardeinstellung (Projekt> Eigenschaften> Anwendung) geändert habe, dies ist jedoch für das Testprojekt, das einige Wochen später erstellt wurde, fehlgeschlagen. Die Nichtübereinstimmung nicht einen Compiler - Fehler verursachen, aber es hat ergeben eine Warnung in der Fehlerliste Fenster. Nachdem ich die Option zum Anzeigen von Warnungen ausgewählt hatte, war die Lösung offensichtlich.

JerryM
quelle