webentwicklung-frage-antwort-db.com.de

Fehler beim Ausführen von Komponententests in Visual Studio: Testfallobjekte fehlen

Beim Ausführen von Komponententests aus Visual Studio mit resharper wird folgender Fehler angezeigt: 

Test-case objects missing for the following elements: ... Rebuild the project and try again

Im Tooltip neben der Komponententestmethode steht: Inconclusive: Test not run und ich denke, dass Unit test skipped an einer Stelle gesagt wurde. Die Nachschärfung zeigt ein graues Augensymbol.

Es gibt auch ein seltsames Problem mit dem Test Explorer von Visual Studio. Es werden nicht alle Unit-Tests angezeigt. In der Tat fehlen über 200 meiner Unit-Tests. Sie werden einfach nicht im Test Explorer-Fenster angezeigt. Ich habe eine Handvoll Tests, die erscheinen und gut laufen werden.

Dinge, die ich bereits versucht habe: Neustarten des Computers, Reinigen, Neuaufbau und Ändern aller abhängigen Projekte, um dasselbe .NET-Framework 4.7 zu verwenden.

Ich verwende VS 2017 .net Framework 4.7, Resharper und MSTest. Alle mit den neuesten Updates und Versionen.

24
goku_da_master

Dieser Fehler trat auf, nachdem ich alle Nuget-Pakete entfernt hatte, da ich meine .net-Version geändert hatte und keine zum Kompilieren brauchte.

nach der erneuten Installation von MSTest.TestAdapter begann das Nuget-Paket erneut, wie erwartet, mit den Unit-Tests

Install-Package MSTest.TestAdapter

18
workabyte

Ich weiß, dass dies die Frage des OP nicht beantworten wird, da er/sie es versucht hat, aber vielleicht hilft es jemand anderem. 

Bei einem einfachen Neustart von Visual Studio wurden dieTest-Case-Objekte behoben, die für folgende Elemente fehlen: ... Erstellen Sie das Projekt neu und versuchen Sie es erneutproblem. 

16
gabrielkerekes

Nachdem ich mir einen Tag lang den Kopf schlug, bekam ich den Test Explorer zum Laufen. Es war die Zielplattform. 

In den Eigenschaften des Einheitentestprojekts unter Build hatte ich das Plattformziel als x64. Ich habe es auf AnyCPU umgestellt und der Test Explorer hat meine fehlenden Komponententests sofort aufgegriffen. Resharper gibt mir jedoch immer noch den gleichen Fehler. Ich werde aktualisieren, wenn ich eine Lösung dafür finde. In der Zwischenzeit kann ich meine Unit-Tests jetzt zumindest ausführen und debuggen.

3
goku_da_master

Mein Problem war die falsche Build-Konfiguration. 

Meine Lösung hat einige Projekte und einige andere Build-Konfigurationen. Ich hatte versehentlich die falsche Projektkonfiguration ausgewählt, die nicht richtig eingerichtet war, um das Testprojekt einzuschließen, das ich verwenden wollte.

0
Richard Moore

Ich habe MSTest.TestAdapter von 1.1.18 auf 1.3.2 aktualisiert. Es hat es endlich für mich gelöst.

0
ekenman

Dies ist mir bei einem F # -Projekt aufgefallen. In meinem Fall war es das Einfügen von Klammern in den Namen der Testmethode, der das Problem verursacht hat.

[<TestMethod>]
member x.``E is updated where generic form or visit should include (this) UPDATED VISIT AND FORM``() =
        let origExpr = "visit:form:INTQ1AB"
        let checkedExpr = "VISIT2:FormFour:INTQ1AB"
        ...

führte zu einem unschlüssigen Test, während die Klammern um "(this)" wie folgt entfernt wurden

[<TestMethod>]
member x.``E is updated where generic form or visit should include this UPDATED VISIT AND FORM``() =
        let origExpr = "visit:form:INTQ1AB"
        let checkedExpr = "VISIT2:FormFour:INTQ1AB"
        ...

der Test konnte erfolgreich abgeschlossen werden.

0
pilsdumps

für mich ist dies passiert, weil ich das Nuget-Paket für FLIEHEN installiert habe. Dies fügte die folgende Zeile in meine app.config-Datei meines Testprojekts ein:

<dependentAssembly>
  <assemblyIdentity name="System.Reflection" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>

Da auf meinem Computer nicht Version 4.1.2.0 installiert ist (ich habe 4.0.0.0), schlägt das Testprojekt mit dieser sehr verwirrenden "Fehlermeldung" fehl.

Nachdem ich eine frühere Version (1.05) des FLEE-Pakets (die 4.0.0.0 verwendet) installiert hat und die Versionsnummer in der bindingRedirect in der app.config auf 4.0.0.0 geändert hat, war alles wieder normal

0
Daniël Tulp

Ich bin auf dieses Problem gestoßen, als ich Resharper über NuGet nach fehlenden Referenzen für Nunit suchen ließ. Anstatt die .NET Core-kompatible Version des von mir benötigten Pakets herunterzuladen, hatte es sich die .NET Framework-Version geholt. Ich habe das NUnit-Paket deinstalliert und mithilfe des NuGet-Paketmanagers neu installiert, um dieses Problem zu beheben.

0
drobison