Ich habe eine einfache Lösung in Visual Studio 2013, die aus einem Webprojekt, einem Bibliotheksprojekt und einem Unit-Test-Projekt besteht. Wenn ich die Lösung öffne und versuche, die Komponententests auszuführen, werden sie von Visual Studio nicht entdeckt. Um die Tests auszuführen, versuche ich, in das Menü zu gehen und Test -> Ausführen -> Alle Tests ausführen oder das Test-Explorer-Fenster zu öffnen. Durch diese Methoden entdeckt Visual Studio keine Tests in der Lösung.
Erstellen Sie zuerst ein einfaches Unit-Test-Projekt und versuchen Sie, den Test auszuführen. Visual Studio weiß, dass Sie den Test entdecken und ich kann ihn ausführen. Wenn ich dann meine vorherige Lösung öffne, entdeckt Visual Studio jetzt alle Tests. Ich versuche, meine Lösung zu speichern, aber wenn ich sie schließe und wieder öffne, ohne vorher ein Unit-Test-Projekt zu erstellen, findet das Visual Studio die Tests nicht wieder. Dies ist ein sehr seltsames Verhalten, von dem ich nicht weiß, warum dies geschieht.
Ich habe in diesem Projekt, in dem der in die Visual Studio Team Foundation integrierte Quellcodeverwaltungs-Git verwendet wurde, alleine gearbeitet. Das Problem von Visual Studio nicht entdecken die Unit-Tests beginnen, wenn ein neues Element in das Projekt kam und wenn ich die Lösung über die Quellcodeverwaltung online neu erstellen muss. Zuvor wurden alle Tests immer von Visual Studio entdeckt.
Für die Erstellung der Unit-Tests verwende ich die DLL Microsoft.VisualStudio.QualityTools.UnitTestFramework. Meine Version von Visual Studio lautet: Microsoft Visual Studio Express 2013 für Web Version 12.0.30723.00 Update 3. Meine Version von .net Framework ist 4.5.50938.
Alle meine Tests sind wie folgt:
[TestClass]
public class Service1Test
{
[TestMethod]
public void Test1()
{
Assert.IsTrue(True);
}
}
quelle
Antworten:
Einige Dinge, die mir aufgefallen sind, muss ich von Zeit zu Zeit tun, damit Tests richtig angezeigt werden.
Wenn sich Ihre Lösung auf einem geschützten Laufwerk befindet, für das Sie Administratorzugriff zum Lesen / Schreiben benötigen, wird manchmal nur ein Teil der Tests ausgeführt. Führen Sie in diesem Fall auf jeden Fall VS als Administrator aus.
Wenn Ihre Lösung 64-Bit ist, stellen Sie sicher, dass Test> Testeinstellungen> Standardprozessorarchitektur auf x64 eingestellt ist. Manchmal wird es auf x86 gesetzt. Stellen Sie es auf x64 ein und erstellen Sie es neu.
Manchmal reicht es aus, Visual Studio neu zu starten, da der Test-Explorer erneut gestartet wird.
Vergessen Sie nicht, das Testprojekt / die Testlösung tatsächlich zu erstellen. (Wenn Sie möchten, dass es mit den übrigen Projekten erstellt wird, klicken Sie mit der rechten Maustaste auf Ihre Lösung> Eigenschaften> Konfigurationseigenschaften> Konfiguration> Aktivieren Sie das Kontrollkästchen "Erstellen" für Ihr Testprojekt.)
Stellen Sie sicher, dass sich die Tests in einem
public
Abschnitt Ihrer Testklasse befindenquelle
Wenn Sie NUnit verwenden, müssen Sie zuerst den NUnit-Adapter herunterladen.
Gehen Sie zu Extras → Erweiterungen und Updates… → Online → Suchen Sie nach "NUnit Test Adapter".
quelle
Stellen Sie sicher, dass Ihre Testklasse
public
so ist, dass sie gefunden werden kann. Und wenn Sie auf eine andere Klasse verweisen, stellen Sie dies sicher.Manchmal, wenn Sie keine Asserts haben oder den Test nicht mit einem dekorieren
[TestMethod]
, wird ein Test möglicherweise nicht erkannt.2 weitere Dinge: 1) Asynchrone Unit-Tests wirken bestenfalls lustig und im schlimmsten Fall gar nicht. Schauen Sie sich diesen Artikel von Stephen Cleary an und halten Sie sich von dort , wenn es Sie interessiert.
2) Wenn Sie NUnit verwenden und auf dieselben Probleme
[TestCase]
stoßen, denken Sie daran, dass dies nicht für Nunit, sondern für Nunit gilt[TestMethod]
Nach alledem ist hier ein Artikel, den ich über das Code-Projekt gepostet habe, mit beiden
MSTest
&NUnit
, falls Sie es ausprobieren und sicherstellen möchten, dass Sie nichts verpassen.quelle
using Microsoft.VisualStudio.TestTools.UnitTesting;
Ich hatte das gleiche Problem, aber keine der anderen Lösungen funktionierte. Es stellt sich heraus, dass ich das NUnit 3-Framework mit dem 2-Adapter verwendet habe.
Wenn Sie NUnit 3 verwenden, gehen Sie zu Erweiterungen und Updates und installieren Sie den NUnit3-Testadapter.
quelle
Ich habe dieses Problem von Zeit zu Zeit. Für mich funktioniert es, Visual Studio herunterzufahren und in den Ordner zu wechseln:
und löschen Sie es Inhalt.
Sobald Sie Visual Studio öffnen und Ihr Projekt erneut laden, sollte der Test Explorer Ihre Tests zurückgeben
quelle
%LocalAppData%\Microsoft\VisualStudio\16.0_03b7a93c\ComponentModelCache
XUnit-Benutzer stellen möglicherweise fest, dass im Fenster "Test Explorer" keine Tests mehr aufgelistet sind. Um Tests wieder auffindbar zu machen, versuchen Sie diesen wichtigen Tipp , der unten hervorgehoben ist.
quelle
Für zukünftige Googler hatte ich ein seltenes Szenario, das dies verursachte.
In meiner Basistestklasse hatte ich eine Eigenschaft namens TestContext. Dies störte die reservierte TestContext-Eigenschaft von MSTest und führte dazu, dass alle meine Tests bis auf einen (der nicht von der Basis geerbt wurde) vor VS / Resharper ausgeblendet wurden.
quelle
public
.Für mich war es die Änderung der 'Lösungskonfigurationen' in Debug (anstelle von Release).
quelle
Mein Problem war, dass meine Unit-Test-Methode nicht ungültig war und Parameter empfing.
quelle
Ich habe festgestellt, dass Unit-Test-Methoden, die als markiert
async void
sind, vom VS Test Explorer nicht erkannt werden. Dies scheint darauf zurückzuführen zu sein, dass VS nicht warten kann, bis ein Test abgeschlossen ist, und entscheiden kann, ob er erfolgreich ist oder nicht. Wenn Sie unbedingt eine Testmethode benötigen, um asynchron ausgeführt zu werden, geben Sie stattdessen eine Aufgabe zurück, wie zasync Task
. Ich fand, dass dies das Problem für mich behoben hat.quelle
Versuchen Sie, alle Projekte als MSIL (Beliebige CPU) anstelle von x86 / x64 zu erstellen. Hat seltsam für mich gearbeitet
quelle
Während die Lösung von AndyG funktioniert, könnte eine dauerhaftere Lösung darin bestehen, die Umgebungsvariable PreferredToolArchitecture auf "x64" zu setzen, entweder durch:
So lassen Sie Visual Studio die native amd64-Toolchain verwenden
oder von:
quelle
Ich hatte das gleiche Problem und habe mich erneut daran erinnert (diese Situation ist schon einmal aufgetreten), dass die Auswahl von "Gemischte Plattform" im Menü der Lösungsplattform ebenso funktioniert wie die anderen Antworten.
quelle
Ich hatte es geschafft, meine als hinzuzufügen
fing an zu arbeiten, sobald ich statische entfernt habe ....
quelle
Gehen Sie zum Nuget-Paketmanager und laden Sie den Nunit-Adapter wie folgt herunter.
quelle
Gehen Sie zum Projektmenü> Configuration Manager. Überprüfen Sie, ob Ihre Testprojektplattform mit dem Rest des Projekts übereinstimmt. Überprüfen Sie, ob sie erstellt und dann neu erstellt werden soll.
quelle
Ich bin gerade darauf gestoßen und habe keinen ähnlichen Fall gesehen, der meinem ähnlich war.
In der
.csproj
Datei meines Testprojekts wurde der Datenschutz für NUnit-Referenzen auf Folgendes festgelegtFalse
:Nachdem ich mich darauf eingestellt hatte
<Private>
,True
funktionierte es.quelle
Sie müssen nur dieses Paket installieren:
NUnit TestAdapter
quelle
Um Tests im Test Explorer-Fenster anzuzeigen, musste ich NUnit3 Test Adapter 3.0 installieren, der im Package Manager nicht verfügbar war.
Heruntergeladen von https://visualstudiogallery.msdn.microsoft.com/0da0f6bd-9bb6-4ae3-87a8-537788622f2d
quelle
Ich hatte genau das gleiche Problem.
Dies lag an einer inkompatiblen Version von NUnit, die ich meinem Projekt (3.2.0) und dem von mir installierten Testadapter (2.0.0) hinzugefügt hatte.
Verwenden Sie zum Beheben "Extras> Erweiterungen und Updates" und suchen Sie nach dem NUnit3-Testadapter. Danach wurden meine Tests erkannt.
Prost
quelle
Sagen wir einfach aus Gründen der Argumentation, dass Sie für Ihr Testprojekt die X64-Architektur verwenden müssen, damit die Abhängigkeiten ordnungsgemäß erstellt werden (wie in meinem Fall). Möglicherweise müssen Sie Ihre Standardprozessorarchitektur im Menü Test - Testeinstellungen ändern . Wenn Sie dies auf X64 setzen, konnte mein Test-Explorer meine Tests mit Microsoft.VisualStudio.TestTools.UnitTesting finden.
quelle
Es tut mir leid, dass ich zur langen Liste hinzugefügt habe, aber ich hatte ein ganz anderes Problem. Zunächst möchte ich erwähnen, dass ich mein Problem entdeckt habe, als ich im Test-Explorer auf "Alle ausführen" geklickt und dann das Build-Ausgabefenster in Visual Studio angesehen habe. Sie müssen es aktiv beobachten, da danach die Nachricht verschwindet.
Das Problem sieht so aus, als würde beim Scannen der Tests die DLL geladen und ihre Testtypen werden aufgelistet. Dadurch werden die Referenzen geladen. Wenn während dieses Vorgangs ein Fehler auftritt, werden die Tests nicht im Explorer angezeigt. Ich hatte zwei Probleme, die verhinderten, dass die Test-DLL erfolgreich geladen wurde:
quelle
Wenn Sie eine Visual Studio-Lösung (in meinem Fall VS 2015 Community) aus einer Netzwerkfreigabe oder dem Verzeichnis Eigene Dateien laden , das Teil einer Freigabe ist, treten Probleme auf. Ich habe es gelöst, indem ich die Lösung und die zugrunde liegenden Projekte in einen lokalen Ordner verschoben habe.
quelle
Nachdem ich 2 Tage verbracht habe ... hat keines der oben genannten für mich funktioniert. Die einzige "Lösung" war: Gehen Sie zu Projekteigenschaften -> Registerkarte Erstellen. Klicken Sie dann in der rechten unteren Ecke des Fensters auf die Schaltfläche Erweitert. Ändern Sie "Debug Info:" in "full" und klicken Sie auf OK.
Hier sind die Screenshots:
quelle
Ich bin auf das gleiche Problem gestoßen. Und untersucht und festgestellt, dass die DLLs nicht erstellt und in den richtigen Ordner gelegt wurden. Sobald ich meine Konfiguration geändert hatte, erschienen sie. - die Build-Optionen für Projekte, welcher Ordner sollte verwendet werden? - die Build-Menüeintrag Build-Konfiguration, sollten sie überprüft werden.
das hat es für mich behoben.
quelle
Für Visual Studio 2013.5 hat das Löschen des Verzeichnisses \ TestResults in der Lösung geholfen. Visual Studio hat die MDF-Datei, in der die erkannten Tests gespeichert sind, beschädigt und somit die Erkennung von Komponententests verhindert.
quelle
Stellen Sie sicher, dass alle Projekte mit derselben Konfiguration ausgeführt werden. Wählen Sie unter Eigenschaften Ihres Projekts => Debug => Plattform in der Dropdown-Liste die entsprechende Plattform aus (für mich war es "Beliebige CPU"), wie bei Ihren anderen Projekten festgelegt.
quelle
quelle
Hatte das gleiche Problem; Tests wurden plötzlich nicht mehr entdeckt.
Der Nunit-Testadapter war irgendwie deaktiviert worden. Durch Klicken auf Aktivieren im Erweiterungsmanager wurde dies für mich behoben.
quelle
Ich hatte das gleiche Problem, bis mir klar wurde, dass ich einen Fehler beim Ausschneiden / Einfügen gemacht und
[Test Method]
vor dem Test aufgehört habe.quelle