Visual Studio 2015 erkennt keine Komponententests
BEARBEITEN 2016-10-19:
Die ursprüngliche Frage war über eine spezifische Frage zu VS2015 CTP6 mit dem XUnit-test-runner. Es ist klar aus den Antworten, dass es ist ein viel breiteres Problem mit dem unit-test-discovery in Visual Studio, die möglicherweise auftreten, in vielen verschiedenen Situationen. Ich habe aufgeräumt, meine Frage zu reflektieren.
Ich habe auch ein script in meine eigene Antwort, die ich noch bis heute ähnliche Probleme zu lösen, wenn Sie auftauchen.
Viele andere Antworten haben sich ebenfalls als hilfreich, besser zu verstehen die Feinheiten der VS-test-runner. Ich Schätze, dass die Menschen noch teilen Ihre Lösungen!
Ursprüngliche Frage 2015-04-10:
Seit gestern, mein Visual Studio Test-Explorer nicht entdecken-tests für alle meine Projekte. Es zeigt nicht die grünen Ladebalken nach dem Bau.
Wenn ich zu den Visual Studio Test-Explorer, und klicken Sie auf "Alle Ausführen", oder wenn ich mit der rechten Maustaste klicken Sie auf eine test-Methode, und wählen Sie "Run Tests", bekomme ich folgende in meiner Ausgabe-Fenster:
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 arbeite mit Visual Studio 2015 CTP-Version 6 auf Windows 10 Pro Technical Preview, build-10041. Die .NET Framework version scheint nicht, egal, es kommt auf 4.0
, 4.5.2
und 4.6
.
Habe ich versucht mit dem folgenden Test-frameworks, und alle geben das gleiche Verhalten:
Microsoft.VisualStudio.QualityTools.UnitTestFramework v14.0.22609.0
xunit v2.1.0-beta1-build2945
mitxunit.runner.visualstudio v2.1.0-beta1-build1051
NUnit v2.6.4
mitNUnitTestAdapter v2.0.0
Fand ich eine Ausgabe auf GitHub (xunit), der scheinbar ähnlich: Nicht get-tests entdeckt #295, mit diesem Kommentar aus der xunit-team:
Bewusst sein, dass die Visual Studio 2015 CTP 5 ist berichtet worden, um gebrochen zu werden
von vielen Menschen mit unit-testing im Allgemeinen (nicht nur xUnit.net), so
erwarten Sie nicht, dass, um zu arbeiten.Bitte auch, sicherzustellen, dass Sie gereinigt habe Visual Studio Läufer
cache. Wenn es beschädigt wird, wird Visual Studio permanent daneben benehmen
bis es gelöscht. Den cache zu löschen, beenden Sie alle Instanzen von
Visual Studio, löschen Sie dann den Ordner
%TEMP%\VisualStudioTestExplorerExtensions (ehrlich gesagt, ist es wahrscheinlich
würde nicht Schaden, um alles zu löschen im %TEMP%, die gelöscht werden können).
Ich habe versucht Ihren Vorschlag, den Ordner zu löschen %TEMP%\VisualStudioTestExplorerExtensions
. Leider hat das nicht das problem zu beheben.
Bemerkte ich, dass ReSharper eigentlich ist in der Lage, um zu entdecken, einige tests. Es funktioniert nur für die VS und NUnit-tests, nicht für xunit.
Dort hat zu sein eine Art von temp-oder cache-Ordner habe ich löschen müssen, aber ich weiß, Visual Studio hat viele von Ihnen, und nicht alle von Ihnen können gelöscht werden, ohne unerwünschte Nebenwirkungen.
InformationsquelleAutor der Frage Fred Kleuver | 2015-04-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zu meiner überraschung -, clearing -, temp-Dateien, die sich in der
%TEMP%
Verzeichnis behoben das Problem für mich.Hinweis: Dieser Pfad ist in der Regel bei
C:\Users\(yourusername)\AppData\Local\Temp
Als @Warren-P enthalten ist, können Sie navigieren Sie zu dem temporären Ordner, indem Sie in
%temp%
im Startmenü, oder öffnen Sie den "Datei-Explorer" und geben Sie%temp%
in der Adressleiste.InformationsquelleAutor der Antwort RobM
Könnte es sein, dass Ihre codes kompiliert werden, mit der x64 deshalb haben Sie zum aktivieren der Standard-Prozessor-Architektur X64.
InformationsquelleAutor der Antwort Dac Toan Ho
Check-out, wenn NUnit Test Adapter 2/3 installiert ist in VisualStudio.
(Tools>Extensions and Updates )
Stellen Sie sicher, dass die richtige Prozessor-Architektur gewählt:
(Test>Test Settings>Default Processor Architecture)
InformationsquelleAutor der Antwort MichiBack
BEARBEITEN 2016-10-19 (PowerShell-Skript)
Dieses Problem immer noch gibt, jeden jetzt und dann. Ich schrieb ein kleines PowerShell-snippet zu automatisieren clearing die entsprechenden cache/temp-Ordner/- Dateien für mich. Ich Teile es hier für zukünftige Leser:
Stellen Sie sicher, schließen Sie Visual Studio und vorher ist es wahrscheinlich eine gute Idee, reboot danach.
Löschen der TEMP-Ordner kann nicht notwendig sein, und kann in einigen Fällen sogar unerwünscht sein, so würde ich empfehlen, versuchen, ohne löschen des TEMP-Ordner. Nur das auslassen der
"$env:TEMP"
.Ursprüngliche Antwort 2015-04-12
War das problem "gelöst", nachdem eine Gründliche Reinigung der Visual Studio-bezogene temp/cache-Ordner.
Da ich nicht die Zeit haben, gehen Sie durch alles einzeln und dann testen, in-zwischen habe ich leider nicht wissen, was man tatsächlich das problem verursacht.
Diese sind die genauen Schritte, die ich gemacht habe:
temp
Dateien/OrdnerManuell deaktiviert/gelöscht, die 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
InformationsquelleAutor der Antwort Fred Kleuver
Einen Grund für dieses problem ist, dass Ihre test-Klasse ist nicht öffentlich. MSTest nur entdeckt, tests von öffentlichen Klassen.
InformationsquelleAutor der Antwort AfshinS
In Visual Studio 2015(Update 3) wenn Sie möchten, fügen Sie die tests in der test-explorer, dann installieren Sie das NUnit Test Adapter.Download der adapter von Tools->Erweiterung Und Updates->Registerkarte "Online" (Sie haben für die Suche nach adapter)->Download.
Durch einen Neustart des Visual Studio können Sie die änderung für das test-framework.
InformationsquelleAutor der Antwort Pankti Shah
Habe ich nicht eine vollständige Antwort, aber ich habe bestimmt einige Dinge durch das spielen mit einem test-Projekt:
xunit.runner.aspnet : 2.0.0-aspnet-beta4
zu sein scheint Teil des offiziellen beta4 aspnet5 Version funktioniert nicht in Visual Studio."xunit": "2.1.0-*"
und"xunit-runner.dnx": "2.1.0-*"
Pakete funktionieren in Visual Studio.Dies ist aktuell pro VS 2015 CTP-Version 6, mit der beta4 Versionen, nicht die Tageszeitungen.
InformationsquelleAutor der Antwort Avi Cherry
Ich hatte eine Instanz wo einige tests würden nicht abgeholt werden, weil ich hatte Sie
async
wie folgt:public async void This_IsMy_UnitTest()
Das problem war das ich vergessen habe, machen Sie wieder eine
Task
und nichtvoid
wenn ich die switch-over. Man würde denken, dies würde einen Fehler verursachen oder ist fehlgeschlagen test, aber pustekuchen. Die unit-tests, die in dieser Klasse wurden komplett ignoriert und gehandelt, wie Sie nicht existieren.War es nicht, nach über 3 sauber und baut + Neustart
VS.NET
sah ich, dass der test ausgeführt und das fehlschlagen angibt ich vergaß hinzuzufügen, dieTask
Gegenzug Typ:public async Task This_IsMy_UnitTest()
Nach dem update werden die unit-tests gefunden wurden, und arbeitete korrekt. Dies könnte ein Grenzfall, aber mit
async
tests für die Verwendungawait
innerhalb, aber nicht die Signatur korrekt ist, kann diese gleiche Problem und es ist nicht das 1. mal, dass ich dies getan haben.InformationsquelleAutor der Antwort atconway
Gehen Sie auf Nuget-Paket-manager und download-Nunit-Adapter wie folgt.
InformationsquelleAutor der Antwort Debendra Dash
Ich hatte das gleiche pronlem aber der Ordner "%TEMP%\VisualStudioTestExplorerExtensions" existiert nicht auf meinem Rechner, so wie ich die Beiträge gelesen hatte ich die Idee, zu erstellen, und es funktioniert. Die test-explorer ist nun in der Lage zu zeigen, alle meine tests.
Danke.
InformationsquelleAutor der Antwort Vinci
In meinem Fall (Visual Studio Enterprise 2015 14.0.25425.01 Update 3, Resharper 2016.2) ich brauchte nur zu tun, ein saubere Lösung aus dem Build-Menü. Wiederaufbau der Lösung verursachen dann die test-explorer zu "wecken" und finden Sie alle tests wieder.
InformationsquelleAutor der Antwort sammy34
Nur neu starten Visual Studio und im Test-Explorer "Ausführen Alle" ... Alle meine tests sind dann entdeckt.
InformationsquelleAutor der Antwort lukyer
Die Lösung in meinem Fall war einfach zu installieren, die NUnit-3-Test-Adapter Erweiterung zu meinem Visual Studio 2015.
InformationsquelleAutor der Antwort Umar T.
In meinem Fall war das problem "zwischen Stuhl und Tastatur". Ich hatte eingeschaltet, um eine Konfiguration in der Konfiguration Manager, die nicht auch mein unit-test-Projekte auf zu bauen. Wechsel zurück zu einer Konfiguration (z.B. Debug) enthält alle Projekte, die das Problem beseitigt haben.
InformationsquelleAutor der Antwort AndyZez
In meinem Fall, MSTest unter VS 2015 ignorierte tests mit test (also die Methode) Namen, die länger waren als 174 Zeichen. Die Verkürzung der Namen erlaubt den test, um sichtbar zu werden. Das war bestimmt über guess-and-check durch die Manipulation der name des Tests.
InformationsquelleAutor der Antwort Kenneth K.
Diese wahrscheinlich nicht helfen, die meisten Menschen, aber jemand, der unerfahren auf unit-Test geschrieben hatte, eine test-Methode, die zurückgegeben
bool
stattvoid
:Ändern Sie den Rückgabetyp zu
void
das problem behoben.InformationsquelleAutor der Antwort Sam
Sicherzustellen, dass Sie haben
xunit.runner.visualstudio
Paket in der test-Projekt-Pakete.config und auch das war richtig wiederhergestellt.Ich weiß, das war nicht der Fall von der ursprünglichen Frage, aber es könnte sparen Sie Zeit, für jemanden wie mich.
InformationsquelleAutor der Antwort pvasek
Möchte ich nur hinzufügen, dass ich fand eine ganz andere Lösung für die oben.
Ich erklärt hatte, dass meine test-Klasse wie folgt:
Sobald ich fügte hinzu, die
public
modifier der Klasse, es funktioniert wie erwartet!InformationsquelleAutor der Antwort James Hughes
Löschen der Datei \AppData\Local\Microsoft\VisualStudio\14.0\1033\SpecificFolderCache.xml gelöst ist das Problem für mich.
InformationsquelleAutor der Antwort der_chirurg
Ich wurde auch gebissen durch dieses wunderbare kleine feature und nichts, was hier beschrieben für mich gearbeitet. Es war nicht, bis ich doppelt überprüft die build-Ausgabe und bemerkt, dass die relevante Projekte nicht gebaut werden. Ein Besuch in configuration manager bestätigte meinen Verdacht.
Visual Studio 2015 hatte glücklicherweise erlaubte mir, neue Projekte hinzufügen, beschloss aber, dass es sich nicht lohnt Sie zu bauen. Sobald ich fügte hinzu, die Projekte zu bauen, die er zu spielen begann, sehr schön.
InformationsquelleAutor der Antwort Robbie Dee
Ich den Fehler gemacht, das erstellen von asynchronen Methoden, die aber wieder erlischt.
Geändert:
public async void Test()
:
public async Task Test()
InformationsquelleAutor der Antwort Vishal
Ich entschloss mich, es durch eine änderung X64 :
Rechtsklick auf Projekt -> Eigenschaften -> Erstellen -> Plattform Ziel -> Jede CPU
InformationsquelleAutor der Antwort Pouyan Sepahvand
Irgendwie mein Projekt wurde eingestellt, um zu kompilieren als Statische Bibliothek (.lib). Nach dem ändern dieser zu einem Dynamische Bibliothek (.dll), tests, bei denen richtig erkannt, die von Visual Studio 2012.
InformationsquelleAutor der Antwort Maate
Wenn Sie sich gezielt .NET oder Standard .NET Core verwenden, benötigen Sie das NuGet-Paket für NUnit Test Adapter und nicht die Erweiterung.
Quelle: NUnit GitHub Wiki
.
Überprüfen Sie auch die FAQ dort:
Quelle: NUnit GitHub Wiki
InformationsquelleAutor der Antwort m93a
Mir das passiert, weil mein test-Projekt enthielt eine
app.config
.Es wurde automatisch Hinzugefügt, indem Sie NuGet-Pakete für die Montage Umleitung, aber meine tests schien gut laufen, ohne es.
Finden Sie unter: https://developercommunity.visualstudio.com/comments/42858/view.html.
InformationsquelleAutor der Antwort Ohad Schneider
War es so einfach für mich, um das Problem zu beheben:
InformationsquelleAutor der Antwort mggSoft
Ich hatte das gleiche problem. Ich habe gerade gereinigt und neu erstellt das Projekt, und ich war in der Lage, um zu sehen, die tests, die fehlten.
InformationsquelleAutor der Antwort Eric
Ich kämpfte mit demselben problem für VSTest Rahmen und meine Muttersprache unit-tests.
So, nachdem ich alle diese Dinge, die Sie vorher erwähnte, habe ich entfernt jedes vorkommen von ' # ' - symbol in meiner Lösung Pfad. Es funktioniert tatsächlich.
Lasse ich es hier für Google-Mitarbeiter, wer findet diese Frage in der Zukunft.
InformationsquelleAutor der Antwort Luke nullptr Krupa
Knallen, um meine Lösung. Ich war auf Windows 10, Visual Studio 2015, NUnit 3.5, NUnit Test Adapter 3.6 (über NuGet, nicht den Namen VISX-Erweiterung) und keiner meiner tests wurden entdeckt. Mein problem war, dass in den Tests Projekt meiner Lösung, irgendwie eine Verknüpfung zu meinem "Dokumente" - Ordner erstellt worden, der innerhalb der Projekt-Ordner. Ich vermute, dass die test-adapter war zu sehen, die Verknüpfung und bekommen aufgehängt, um herauszufinden, was mit ihm zu tun, was den Ausfall zur Anzeige von unit-tests.
InformationsquelleAutor der Antwort Thomas Parikka
Diesem Thema ist etwas veraltet, aber meine Lösung für den fehlenden Test-status im VS2015:
Den task-status wird nur auf der Debug-buildconfiguration. Natürlich ist auch dies macht es unmöglich zu Debuggen test durch die test-explorer.
InformationsquelleAutor der Antwort pehur