Ich arbeite derzeit an einer Lösung mit derzeit 32 Unittests. Ich habe mit dem Resharper-Testläufer gearbeitet - was gut funktioniert. Alle Tests laufen, alle Tests zeigen das richtige Testergebnis. Nun sagte mir ein Mitarbeiter, dass die Tests auf seinem Computer nicht mit dem Visual Studio Test Explorer ausgeführt werden. Sie funktionieren auch nicht auf meinem Rechner, daher kann ich einige fehlende Dateien ausschließen oder so etwas.
Der Test-Explorer zeigt alle Komponententests an. Wenn Sie jedoch auf "Alle ausführen" klicken, werden alle Tests ausgegraut und zeigen kein Ergebnis des Testlaufs:
[TestClass]
-Attribut deklariert[TestMethod]
-Attributobj
, bin
, Debug
und Release
zu löschenIch würde mich über Hinweise informieren, die ein solches Verhalten verursachen könnten.
Wenn Ihre Projekte nicht alle AnyCpu sind, sollten Sie auch prüfen, ob die folgenden beiden Einstellungen übereinstimmen:
[Rechtsklick-Testprojekt] -> Eigenschaften -> Erstellen -> Plattformziel - z. x64
[Hauptmenü] -> Test -> Testeinstellungen -> Standardprozessorarchitektur -> X64
Ich fand heraus, dass wenn dies nicht der Fall war, mein Testprojekt nicht ausgeführt werden konnte.
Ich hatte das gleiche Problem in VS 2017. In meinem Fall wurde es durch einen Neustart von VS gelöst.
Wenn Sie NUnit statt MSTest verwenden, benötigen Sie die NUnit Test Adapter Extension für Visual Studio 2012/2013.
Clean-Rebuild
Lösung hat bei mir funktioniert.
Prüfen Sie, in welchem Rahmen die Tests geschrieben werden (z. B. nunit, xunit, VS-Test usw.), und stellen Sie sicher, dass Sie die richtige Testadapter-/Runner-Erweiterung installiert haben.
Für mich war es der NUnit 3 Test Adapter, der fehlte, und ich habe die erforderliche Versionsnummer durch einen Blick auf die nunit.framework-Abhängigkeitsversion bestätigt.
Ich musste meine asynchronen Testmethoden ändern, um Task anstelle von ungültig zurückzugeben.
Die Tests waren dann im Test Explorer aktiv und lauffähig.
Ich hatte die gleichen Symptome.
Stellen Sie sicher, dass Sie über die Tools - Erweiterungen und Updates die richtige Visual Studio-Erweiterung installiert haben. In meinem Fall musste ich XUnit und Specflow von der Online-Option installieren.
Reinigen Sie dann die Lösung und bauen Sie sie erneut auf.
Wenn das immer noch nicht hilft, löschen Sie Ihr temporäres Verzeichnis (suchen Sie nach% temp% in der Startmenü-Suche und löschen Sie alle Inhalte in Temp.)
Und schließlich versuchen Sie, Resharper zu deinstallieren, was mein Problem behoben hat.
In meinem Fall lag dies daran, dass bei einem Testprojekt in meiner Lösung die NST-Pakete MSTest.TestFramework und MSTest.TestAdapter installiert waren, die anderen jedoch nicht. Diese Pakete mussten anscheinend keine Tests ausführen, bis sie bei einem Projekt in der Lösung installiert wurden.
Das Problem wurde behoben, indem diese Pakete in Testprojekten installiert wurden und diese fehlten.
Hier war das Testprojekt nicht zum Bau bestimmt:
Build -> Configuration Manager ... -> Build für Ihr Testprojekt prüfen
Da ich mit dieser Art von Fehler hierher gekommen bin, poste ich mein Problem/meine Lösung:
Symptome:
Problem:
Im Code ist ein Fehler aufgetreten, der eine Ausnahme in einem anderen Thread ausgelöst hat. Alle Testbestätigungen bestanden, aber die Testausführung wurde abgebrochen. Ich konnte den Fehler in der "Testausgabe" (NullException) sehen.
Für mich hat der Neustart von VS2017 nicht funktioniert. Ich musste sln bereinigen und fand dann eine Datei mit Tests, die nicht ausgeführt wurden, und führte diese Datei nur aus. Danach lief ich alles und es funktionierte wieder normal.
Für mich (nicht ganz eine Lösung) hat es die .testsettings-Datei im Menü [Test] -> [Test Settings] -> [{current file}] deaktiviert, um die derzeit verwendete Datei zu deaktivieren.
In meinem Fall fängt es so an.
<TestSettings name="Local (with code coverage)" id="e81d13d9-42d0-41b9-8f31-f719648d8d2d" xmlns="http://Microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Deployment>
<DeploymentItem filename="ConfigurationImportExportTest\Configurations\" />
<DeploymentItem filename="output\Debug\" />
</Deployment>
<Execution>
Anscheinend stört das DeploymentItem.
weil dies auf der Registerkarte Ausgabe war:
Warning: Test Run deployment issue: The Assembly or module 'Microsoft.SqlServer.Management.SqlParser' directly or indirectly referenced by deployment item 'output\Debug\' specified by the test settings was not found.
.... more of the same
Es sagt mir nicht viel.
Es hat den Anschein, als habe es damit zu tun, dass alle Projekte ihre Zusammenstellungsprodukte in einem gemeinsamen \output\Debug
-Ordner ablegen
dies scheint es jedoch nicht zu behindern. Es gibt eine weitere Warnung heraus, in der es um Dinge wie
A testsettings or runsettings file with `ForcedLegacyMode = TRUE or VSMDI files are not supported by MSTest-V2.
Das scheint es zu stoppen.
Für mich wurde dies durch eine VS-Erweiterung zur Messung der Codeabdeckung verursacht. Es konnte sich nicht auf eine bestimmte Versammlung beziehen und führte daher keinen der Tests durch. Tests würden problemlos über die Befehlszeile ausgeführt werden:
dotnet test
Um dieses Problem zu beheben, können Sie festlegen, dass ALLE Abhängigkeiten in Ihren Testprojekt-Debug-Ordner kopiert werden. Dadurch wird sichergestellt, dass alle Assemblys aufgelöst werden können, da "nicht verwendete" Assemblys nicht entfernt werden. Sie können Ihrer .csprog-Datei für Testprojekte Folgendes hinzufügen:
<PropertyGroup>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
</PropertyGroup>
In meinem Fall hatte ich Version 3.11.0
Von NUnit und NUnit3TestAdapter installiert, aber es gab alte Verweise auf Version 2.6.4
In der Projektdatei, die bei der Neuinstallation nicht entfernt wurden.
NUnit
und NUnit3TestAdapter
Neu. Dadurch wurden die Referenzen in meinem Projekt behoben.PM> Update-Package NUnit -reinstall
...
PM> Update-Package NUnit3TestAdapter -reinstall
NUnit
und NUnit3TestAdapter
.PM> Uninstall-Package NUnit
...
PM> Uninstall-Package NUnit3TestAdapter
...
PM> Install-Package NUnit
...
PM> Install-Package NUnit3TestAdapter
Ich hatte verschiedene Versionen der Nuget-Pakete NUnit (3.11.0) und NunitTestAdapter (3.12.0). Als ich NUnit auf 3.12.0 aktualisierte, führte Visual Studio Tests durch.
Für mich war das Update der MS.Test-Nuget-Pakete ein Problem