Warum erkennt der Visual Studio 2015/2017/2019 Test Runner meine xUnit v2-Tests nicht?

173

UPDATE: Hinzufügen eines 2019; Der Discovery / Runner-Integrationsmechanismus ist derselbe wie in den Jahren 2017 und 2015, daher sind die wichtigsten Dinge, die schief gehen können, dieselben.


Ich habe gelesen, warum der xUnit-Läufer meine Tests nicht findet. Dies deckt Gründe ab, warum xUnit Ihre Tests niemals finden könnte, aber mein Problem ist anders - ich bin zuversichtlich, dass bei meinen Tests nichts Feines vor sich geht. (Sie haben in anderen Umgebungen gearbeitet, dies scheint nur mein Computer zu sein.) - Der Visual Studio-Testläufer in Visual Studio 2015 [Community Edition] zeigt einfach keinen meiner Tests an. Ich mache nichts entfernt Aufregendes; Die Tests zielen auf xUnit.net v2 auf dem Desktop ab.

Ich habe im Ausgabefenster nachgesehen und sehe unter " Test in der Ausgabe von Registerkarten anzeigen" überhaupt nichts .

Ruben Bartelink
quelle
Verwandte: stackoverflow.com/questions/16214684/…
Ruben Bartelink
1
Es ist nur ein mögliches Problem, aber natürlich müssen Sie das Testprojekt kompilieren, bevor es im Test-Explorer angezeigt wird.
Niklas Peter
verwandt: stackoverflow.com/a/29589576/6913871
Ruben Bartelink
Dies funktionierte für mich - stackoverflow.com/questions/42861930/…
Prisoner ZERO
Die Installation von Xunit.Runner.VisualStudio hat mein Problem
behoben

Antworten:

210
  1. Beseitigen Sie Entdeckungsausnahmen aus Ihren Anfragen. Gehen Sie zum Ausgabefenster (Strg-Alt-O), schalten Sie die Show-Ausgabe von Dropdown (Umschalt-Alt-S) auf Tests und stellen Sie sicher, dass keine Erkennungsausnahmen vorliegen

  2. Test | Testeinstellungen | Die Standardprozessorarchitektur kann hilfreich sein, wenn Ihre Tests x86 / x64-spezifisch sind und die Erkennung Ausnahmen im Zusammenhang mit Bittedness auslöst, dh keine AnyCpu

  3. Wie in dieser Antwort vorgeschlagen (verbessern Sie es, wenn die Technik hilft) , kann das Ausführen des Desktop Console Runner ( Anweisungen ) eine gute Gegenprüfung sein, um andere Möglichkeiten auszuschließen, z. B. verstümmelte Konfigurationsdateien: -

    packages\xunit.runner.console.2.2.0\tools\xunit.console <tests.dll>

    HINWEIS Das xunit.runner.consolePaket ist veraltet. Wenn Sie Dinge in VS zum dotnet testLaufen bringen , können Sie sie auch in CI-Kontexten ausführen


Lesen Sie die Dokumentation - sie ist umfassend, aktuell, enthält Informationen zur Fehlerbehebung und erfordert PRs: -

Wichtiger Hinweis: Wenn Sie zuvor xUnit.net Visual Studio Runner VSIX (Erweiterung) installiert haben, müssen Sie es zuerst deinstallieren. Der Visual Studio Runner wird jetzt nur über NuGet verteilt. Um es zu entfernen, gehen Sie zu Extras > Erweiterungen und Updates . Scrollen Sie zum Ende der Liste. Wenn xUnit.net installiert ist, deinstallieren Sie es. Dadurch werden Sie gezwungen, Visual Studio neu zu starten.

Wenn Sie Probleme beim Erkennen oder Ausführen von Tests haben, sind Sie möglicherweise Opfer eines beschädigten Runner-Caches in Visual Studio. Um diesen Cache zu leeren, fahren Sie alle Instanzen von Visual Studio herunter und löschen Sie den Ordner %TEMP%\VisualStudioTestExplorerExtensions. Stellen Sie außerdem sicher, dass Ihr Projekt nur mit einer einzelnen Version des Visual Studio Runner NuGet-Pakets ( xunit.runner.visualstudio) verknüpft ist .

Die folgenden Schritte haben bei mir funktioniert:

  1. (Nur wenn Sie den Verdacht haben, dass auf Ihrem Computer ein ernstes Durcheinander vorliegt - im Allgemeinen ist der häufigere Fall, dass die Visual Studio-Integration einfach noch nicht installiert ist.)

    Gehen Sie DEL %TEMP%\VisualStudioTestExplorerExtensionswie empfohlen vor:

    PS> del $env:TEMP\VisualStudioTestExplorerExtensions

  2. Installieren Sie das NuGet-Paket xunit.runner.visualstudioin allen Testprojekten

    • Paket:

      .paket\paket add nuget xunit.runner.visualstudio -i

      Sie müssen am Ende Folgendes in Ihrem habenpaket.dependencies :

      nuget xunit.runner.visualstudio version_in_path: true

      Beachten Sie, dass das version_in_path: trueBit wichtig ist

    • Nuget: Gehen Sie zur Package Manager-Konsole (Alt-T, N, O) und

      Install-Package xunit.runner.visualstudio)

    Neu erstellen, um sicherzustellen, dass xunit.runneres im Ausgabeverzeichnis landet

  3. Test Explorer schließen <- das war das fehlende Bit für mich

  4. Öffnen Sie den Test Explorer erneut (Alt-S, W, T).

  5. Alle Tests ausführen (Strg R, A)

Ruben Bartelink
quelle
12
"Test Explorer schließen <- das war das fehlende Bit für mich" Dies ist der wichtigste Schritt, den ich ebenfalls verpasst und 5 Stunden lang herausgefunden habe. Danke, ich hätte auf die Schritte achten sollen :)
Esen
1
Der Xunit VS Runner arbeitete für meine SLN. Es war jedoch eines Tages nicht mehr aufgetaucht. Ich habe herausgefunden, dass ich den VS nicht installiert habe und er wahrscheinlich aufgrund des Caches funktioniert, den der andere SLN hinterlassen hat, auf dem der Runner installiert ist. Nach der Installation des Läufers funktioniert es wieder einwandfrei. Vergessen Sie also nicht, den Läufer für jede SLN zu installieren.
ZZZ
1
Das ist unglaublich. Das Löschen des Ordners mit drei weiteren leeren Ordnern behebt das Problem.
t3chb0t
1
@martinJH Ich habe eine selbst beantwortete dafür (Linked in OP): - stackoverflow.com/questions/16214684/… ;) Nicht verraten, wie ich das entdeckt habe
Ruben Bartelink
1
Wirklich komisches Zeug, aber das Löschen %TEMP%\VisualStudioTestExplorerExtensionsund Neustarten von VS hat endlich funktioniert!
Hinrich
35

Ich musste die Testeinstellungen ändern, nachdem ich die CPU des Testprojekts auf x64 geändert hatte. Dann wurden die Tests erneut erkannt.

Die Architektur

Max
quelle
Haben Sie zuvor eine Meldung in der Testerkennungsausgabe gesehen?
Ruben Bartelink
Nein, ich habe keine Fehler gesehen, es hat eine Weile gedauert, bis ich es herausgefunden habe.
Max
hmm; seltsam (siehe oben in meiner Antwort - es erklärt, wo man suchen muss; normalerweise ist dies markiert (obwohl es definitiv Fälle gibt, in denen es einfach nirgendwo Nachrichten gibt))
Ruben Bartelink
Das hat es für mich behoben. Ich weiß nicht, warum das hilft, aber es tut.
VSO
2
Ich musste putzen -> nach dem Wechsel wieder aufbauen.
user2023861
32

Keine der oben genannten Lösungen hat bei mir funktioniert (dotnetcore 1.1, VS2017). Folgendes hat das Problem behoben:

  1. NuGet-Paket hinzufügen Microsoft.TestPlatform.TestHost
  2. NuGet-Paket hinzufügen Microsoft.NET.Test.Sdk

Diese sind zusätzlich zu diesen Paketen, die ich zuvor installiert habe:

  • xunit (2.3.0-beta1-build3642)
  • xunit.runner.visualstudio (2.3.0-beta1-build1309)
Arman
quelle
9
Dies hat mir geholfen, mir fehlte das Paket xunit.runner.visualstudio.
Ognjen Babic
Mein .NET 4.72 MS-Testprojekt wird TestPlatform.TestHostnur für die Migration von VS 2017 auf VS 2019 benötigt.
ΩmegaMan
Das hat es für mich gelöst. Wählen Sie im Ausgabefenster Tests aus der Dropdown-Liste aus => siehe Meldung "Fehlender TestHost".
Datchung
22

Installieren Sie das xunit.runner.visualstudioPaket für das Testprojekt

Chris Aelbrecht
quelle
Beste Antwort auf der Seite. Mein Problem wurde behoben.
RB Davidson
14

Befolgen Sie diese Schritte:

  1. Aktualisieren Sie Ihre MsTest.TestAdapterund MsTest.TestFramework dll'svon nugget package manager.
  2. Reinigen Sie Ihre Lösung
  3. Erstellen Sie Ihre Lösung.
Venkat Ramanan
quelle
1
Können Sie bitte einen Klon dieser Frage öffnen und sich selbst beantworten, wie ich es getan habe? In diesem Fall geht es um xUnit v2 und höher. Auch xUnit v1-Antworten haben hier keinen Platz. Sie können darauf mit einem Blick auch oben in der Frage verlinken, oder ich kann darauf in der Frage verlinken
Ruben Bartelink
Diese Lösung funktioniert. Ansonsten musste ich jedes Mal, wenn ich entfernen %TEMP%\VisualStudioTestExplorerExtensionsmusste, die Tests von der Konsole aus ausführen.
Venky
Ich verwende NUnit und habe dieses Problem gelöst, indem ich NUnit3TestAdapter über NuGet auf die neueste Version aktualisiert habe.
dpberry178
Vielen Dank dafür - in meinem Fall musste ich nur Update-Package-neu installieren MSTest.TestAdapter und die Tests wurden abgeholt.
Rob
10

Ich habe den ganzen Nachmittag damit zu kämpfen, während ich mit einem ASP Core-Projekt und xUnit 2.2.0 gearbeitet habe. Die Lösung für mich war das Hinzufügen eines Verweises aufMicrosoft.DotNet.InternalAbstractions

Ich habe dies herausgefunden, als ich versucht habe, das Testprojekt manuell auszuführen, dotnet testwas fehlgeschlagen ist, aber gemeldet hat, dass InternalAbstractionses fehlte. Ich habe diesen Fehler im Testausgabefenster nicht gesehen, als die automatische Erkennung fehlgeschlagen ist. Die einzige Information, die ich im Entdeckungsfenster sah, war ein Rückkehrcode, der mir zu diesem Zeitpunkt nichts bedeutete, aber im Nachhinein wahrscheinlich auf einen Fehler hinwies.

Tom Makin
quelle
"aber einen nützlichen Fehler gemeldet" ... was war? Können Sie auch überprüfen, ob es definitiv nicht im Fenster "Erkennungsfehler" aufgeführt ist, wie im OP angegeben? Können Sie also sicher sagen, dass "Ich habe im Ausgabefenster nachgesehen und sehe unter" Test in der Ausgabe von Registerkarten anzeigen "überhaupt nichts . " ?
Ruben Bartelink
1
Siehe aktualisierte Antwort. Ich werde die Informationen zum Rückkehrcode später veröffentlichen, falls sie relevant sind.
Tom Makin
9

Es ist mir ein paar Mal passiert - wenn ich das Projekt säubere und es erneut erstelle, ist es in der Regel in Ordnung.

Liam
quelle
Gibt es verräterische Meldungen, wenn Sie im Ausgabefenster nach Tests suchen, die in der Dropdown-Liste ausgewählt sind?
Ruben Bartelink
2
Überhaupt keine, es heißt nur Keine Tests gefunden
Liam
In meinem Fall hing der Test Explorer an einem zuvor fehlgeschlagenen Test. Wenn ich danach navigierte und versuchte, mit der rechten Maustaste auf -> Ausführen oder so zu klicken, blieb der gesamte VS hängen. Durch einfaches Reinigen und Wiederherstellen wurde der Teststatus gelöscht und das Problem für mich behoben.
Piedone
Darf ich hinzufügen, dass das einfache Erstellen (dh F6) nicht hilft. Sie müssen mit der rechten Maustaste auf die Lösung im VS-Projektmappen-Explorer klicken und auf Lösung neu erstellen klicken.
Piedone
8

Stellen Sie sicher, dass Ihre Testklasse öffentlich ist .

shaeed
quelle
das wird in der ersten Maßgabe ausdrücklich angesprochen (ich verknüpfe eine andere Frage, die diesen Fall abdeckt); In diesem Q + A geht es nur um die Fehlerbehebung, wie normalerweise OK-Tests, die an anderen Orten funktionieren, nicht für jemanden funktionieren, der gerade in einer bestimmten Umgebung richtig ist. Für mich verwirrt diese Antwort nur die Dinge, da sie dieses Unterscheidungsmerkmal verwässert.
Ruben Bartelink
1
Vielen Dank. Du hast meinen Tag gerettet.
hellouworld
7

Der Grund in meinem Fall war, dass der Ziel-Build zwischen Projekt-Debugger und Test-Runner nicht identisch war. So vereinen Sie diese Elemente:

  1. Test> Testeinstellungen> Standardprozessorarchitektur. Wählen Sie dann entweder X64 oder X86.
  2. Projekt> (Ihr Projekt) Eigenschaften> Erstellen (Registerkarte)> Plattformziel.

Nachdem sie identisch sind, erstellen Sie Ihre Lösung neu. Anschließend werden Testmethoden für Sie angezeigt.

Jawad Sabir
quelle
6

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: Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung einGeben Sie hier die Bildbeschreibung ein

neugierigBoy
quelle
klingt schmerzhaft. Vielen Dank für das Teilen und hoffe, es hilft jemandem eines Tages. Allerdings muss ich sagen: Ich kann mir keinen Grund vorstellen, warum die Debug-Info-Ebene den Entdeckungsprozess beeinflusst, also kann ich nur sagen "Ich glaube nicht, dass das tatsächlich den Bären erschossen hat" - hoffen wir, dass ich falsch liege obwohl;)
Ruben Bartelink
@RubenBartelink stimme dir vollkommen zu, deshalb habe ich in einem Zitat "Lösung" erwähnt :) aber seltsam genug, es hat sofort funktioniert, als ich das getan habe.
neugierigBoy
Vielen Dank. Dies war auch die Lösung für mich :)
Babulaas
6

Ich benutze xUnit 2.2.0.

Mein Problem war, dass meine Lösung bestimmte DLLs nicht finden konnte und app.configversuchte, sie zu lösen. Der Fehler wurde im Testausgabefenster in Visual Studio nicht angezeigt.

Ich konnte den Fehler bei der Installation identifizieren xunit.runner.consoleund versuchte, die Tests über die Befehlszeile auszuführen.

Ausführen von xunit-Tests in CLI .

SohamC
quelle
5

Ich kann eine Lösung für einen Randfall anbieten, auf den ich vor einigen Tagen gestoßen bin. Es wird jedoch nicht die Lösung sein, die zu allen oben beschriebenen Szenarien passt, für den Randfall, den ich behoben habe.

Ich hatte das gleiche Problem mit dem neuesten VS 2017 (Version 15.5.7) und XUnit 2.3.1. Das Paket xunit.runner.visualstudio wurde installiert. Die Tests wurden jedoch nicht im integrierten Test-Explorer von VisualStudio angezeigt.

Ich habe an einem Legacy-Projekt gearbeitet, das auf .NET Framework 4.5 abzielte. Beginnend mit Version 2.2. XUnit unterstützt keine .NET-Frameworks unter 4.5.2 (siehe Versionshinweise - XUnit 2.2: 19. Februar 2017)

Das Ändern des Zielframeworks des Testprojekts auf eine Version> = 4.5.2 hat bei mir funktioniert. Sie müssen die zu testende Projektversion nicht ändern, es geht nur um das Testprojekt selbst.

baumgarb
quelle
5

Ich hatte das gleiche Problem mit Visual Studio 2019. Ich habe gerade die folgenden NuGet-Pakete installiert und das Problem wurde behoben.

1). xEinheit

2). xunit.runner.visualstudio

3). Microsoft.TestPlatform.TestHost

4). Microsoft.NET.Test.Sdk

Chamila Maddumage
quelle
3

Dies kann auch daran liegen, dass das Kontrollkästchen Build für das aktuelle Plattformprojekt in der Build-Konfiguration nicht aktiviert ist. Klicken Sie auf Erstellen | Stellen Sie dann sicher, dass die Testprojekte in der Build-Spalte ein Häkchen für die von Ihnen verwendete Plattform haben (z. B. 'x86').

Dies war definitiv die Lösung, die für mich funktioniert hat.

cd747
quelle
Ich würde dies positiv bewerten, wenn es auf stackoverflow.com/questions/16214684/… wäre, da dies nicht xunit2-spezifisch und ein gutes Checklistenelement ist
Ruben Bartelink
3

Stellen Sie sicher, dass Sie Ihre Komponententests nicht in einer .NET Standard 2.0-Klassenbibliothek geschrieben haben. Der Visualstudio Runner unterstützt zum Zeitpunkt dieses Schreibens keine laufenden Tests in Netstandard2.0-Klassenbibliotheken.

Überprüfen Sie hier die Test Runner-Kompatibilitätsmatrix:

https://xunit.github.io/#runners

vullnetyy
quelle
3

Stieß auf ein ähnliches Problem, als VS keine Testmethoden entdeckte. In meinem Fall hatte ich das statische Schlüsselwort mit der Methode, die ich entfernt habe und die funktioniert hat.

[TestMethod]

Before: public static void Test1()

After: public void Test1()
Live-Liebe
quelle
1
Ich würde es wirklich vorziehen, wenn dies nicht hier wäre, da es sich um ansonsten korrekte Tests handelt, die in einer bestimmten Instanz von VS nicht gefunden werden können. Ich habe eine selbst beantwortete Frage, warum ein xunit-Test nicht entdeckt werden kann: stackoverflow.com/questions/16214684/… . Darf ich vorschlagen, dass Sie ein Warum erstellen, warum mein MSTest-Test nicht abgeholt werden kann (von VS, wenn Sie möchten). (Wie Sie wahrscheinlich wissen, gilt dieses spezielle Problem nicht einmal für xUnit. Dies ist ein weiterer Grund, warum Ihre Antwort, so hilfreich sie auch ist, nicht hierher gehört.)
Ruben Bartelink
MSTest hat meine Tests nicht gefunden, da der Klassenzugriffsmodifikator intern war.
Abdul Saboor
3
  1. Schließen Sie alle Visual Studio-Instanzen
  2. Gehen Sie zu% TEMP% \ VisualStudioTestExplorerExtensions \
  3. Löschen Sie spezrun-bezogene Ordner
  4. Versuch es noch einmal

Lass es mich wissen, danke

alvarodoune
quelle
2

In meinem Fall hatte ich 2 verschiedene Testprojekte in der Lösung. Projekt 1-Tests konnten gefunden werden, Projekt 2-Tests jedoch nicht. Ich stellte fest, dass VS zuerst meine Project 2-Tests erkennen konnte, indem er zuerst das Testprojekt 1 entlud, dann VS schloss> meine temporären Dateien löschte> Lösung erneut öffnete> neu erstellte.

Ich gehe davon aus, dass zwischen den beiden Testprojekten ein Konflikt besteht, und dies war der schnellste Weg, um mich in wenigen Minuten zum Laufen zu bringen. Die Knicke können später herausgearbeitet werden :).

Zach J.
quelle
2

Ich hatte lange Zeit unter diesem Problem gelitten.

  • Ich hatte ungefähr 100 Projekte, verschiedene Versionen wurden auf verschiedenen Servern bereitgestellt.

  • Das Aktualisieren von xunit von 2.2.0 auf 2.3.1 war keine Lösung, da die Erstellung in 2.3.1 fehlschlug.

Dann habe ich xunit.runner.visualstudio auf 2.3.1 aktualisiert und alles begann gut zu funktionieren. Ich habe diesen Befehl in meiner Paketmanagerkonsole verwendet, um mein Paket xunit.runner.visualstudio zu aktualisieren

Get-Project ComapanyName.ProjectName.*.Tests | Install-Package xunit.runner.visualstudio -Version 2.3.1
Nafeez Abrar
quelle
1

Der häufigste Schuldige für mich war, dass Visual Studio versucht hat, die Tests mit einer anderen Architektur als der getesteten Bibliothek auszuführen. Leider gibt es mehrere Stellen, an denen dies anscheinend schief gehen kann.

Versuchen Sie in VS 2017, eine Datei mit den Ausführungseinstellungen zu erstellen, z. B. Default.runsettingsin Ihrem Testprojekt. Wenn Ihre Hauptbibliothek x64 ist, sollte der Inhalt sein:

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <RunConfiguration>
    <TargetPlatform>x64</TargetPlatform>
  </RunConfiguration>
</RunSettings>

Wählen Sie dann diese Datei unter Test -> Testeinstellungen -> Testeinstellungsdatei auswählen.

Wählen Sie dann unter Test -> Testeinstellungen, Standardprozessorarchitektur erneut die richtige Architektur aus.

Stellen Sie sicher, dass Sie die gesamte Lösung reinigen und erstellen. Möglicherweise müssen Sie das Fenster Test Explorer schließen und erneut öffnen. Suchen Sie im Fenster Ausgabe -> Test nach zusätzlichen Fehlern, um weitere Hinweise auf falsche Architekturtypen zu erhalten.

Weitere Einträge zu Testeinstellungen finden Sie hier .

Tobias J.
quelle
1

Es gibt einen weiteren Grund, der dazu führen kann, dass im Test Explorer keine Tests angezeigt werden. Dies hängt mit dem neuen tragbaren .pdbDateiformat zusammen, das mit Visual Studio 2017 / für .NET Core eingeführt wurde und einige VS-Tools beschädigen kann. (Hintergrund: Siehe Fehlerbericht "Mono.Cecil verursacht OutOfMemoryException mit neuen .csproj-PDBs" .)

Werden Ihre Tests aufgrund des neuen tragbaren .pdbFormats (Debug-Symbole) nicht gefunden ?

  • Öffnen Sie das Ausgabefenster .
  • Ändern Sie die Dropdown-Auswahl für Show output from in Tests .
  • Wenn Sie eine Ausgabe wie die folgende sehen (möglicherweise einmal für jeden Ihrer Tests wiederholt), haben Sie das in dieser Antwort beschriebene Problem:

    Exception System.OutOfMemoryException, Exception converting <SignatureOfYourTestMethod>
    Array dimensions exceeded supported range.

Wenn ja, gehen Sie folgendermaßen vor, um das Problem zu beheben:

  • Öffnen Sie die Eigenschaften Ihres Testprojekts (wählen Sie das Testprojekt im Projektmappen- Explorer aus und drücken Sie Alt+ Enter).
  • Wechseln Sie zur Registerkarte Erstellen .
  • Klicken Sie auf die Schaltfläche Erweitert ... (ganz am Ende dieser Registerkarte).
  • In den Dropdown-markierten Debugging - Informationen , wählt none, pdb-onlyoder fullaber nicht portable . Diese letzte Einstellung führt dazu, dass die Tests nicht gefunden werden.
  • Klicken Sie auf OK und bereinigen und erstellen Sie Ihr Projekt neu. Wenn Sie besonders sicher sein möchten, wechseln Sie in das Ausgabeverzeichnis Ihres Testprojekts und bereinigen Sie alle .pdbDateien, bevor Sie sie neu erstellen. Jetzt sollten Ihre Tests zurück sein.
stakx - nicht mehr beitragen
quelle
1

Zufällig, als ich meine ersten ersten Gehversuche mit IntelliTest in VS 2017 unternahm.

Wenn das Testprojekt automatisch von IntelliTest erstellt wird, verweist die Assembly manchmal auf Microsoft.ExtendedReflection( ... \ Programme (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ Extensions \ Microsoft \ Pex \ Microsoft.ExtendedReflection. dll ) fehlt. Nach dem erneuten Kompilieren werden die generierten Tests im Test-Explorer angezeigt.

Christian
quelle
1

Haftungsausschluss: Es geht nicht um xunit mit Visual Studio 2015, sondern um Visual Studio 2017 mit einer UWP-Unit-Test-Anwendung (MSTest). Ich bin zu diesem Thread gekommen und habe das Gleiche gesucht, also wird vielleicht jemand anderes das Gleiche tun :)

Die Lösung für mich bestand darin, die Nuget-Pakete für MSTest.TestAdapter und MSTest.TestFramework zu aktualisieren. Es scheint, dass Sie beim Erstellen einer Unit-Test-App für UWP nicht automatisch die neuesten Versionen erhalten.

Alex Albu
quelle
Ich würde vorschlagen, eine selbst beantwortete Frage zu stellen, wie ich es getan habe. Dies ist der beste Weg, um solche Informationen zu speichern. Sie können meine gesamte Frage kopieren und s / xUnit / MSTest / einfügen, wenn Sie der Meinung sind, dass dies sinnvoll ist.)
Ruben Bartelink
1

Mein Problem wurde durch die Installation des Nugets xunit.runner.visualstudio behoben

kDar
quelle
1

In meinem Fall habe ich mehrere Testprojekte in derselben Lösung, und nur eines der Projekte zeigte nicht den "Test Explorer" an.

Ich ging zum "Nuget-Paket für Lösung verwalten", indem ich mit der rechten Maustaste auf die Lösung klickte.

Ich habe festgestellt, dass auf der Registerkarte "Konsolidieren" einige "Test" -Nuget-Pakete vorhanden waren, die zwischen den Projekten nicht synchron waren. Ich klickte auf "Installieren" und meine fehlenden Tests wurden angezeigt.

CBBSpike
quelle
1

Ich habe die meisten der oben genannten Vorschläge ausprobiert und nichts hat funktioniert. In meinem Fall bin ich in einem Team und es wurden Tests für andere Entwickler für dieselbe Lösung angezeigt. Also habe ich versucht, nur meinen .vs-Ordner zu löschen, aber auch dort kein Glück.

Am Ende habe ich meinen lokalen Ordner vollständig gelöscht und das Repo neu geklont. Das hat es für mich gelöst.

Paul G.
quelle
1

Hier ist die Lösung, die für uns funktioniert hat. Nicht das Beste, aber vielleicht kann man davon profitieren.

Hintergrund:

  • Unsere Skripte wurden mit VS 2013 entwickelt und verwendeten NUnit VS Adapter 2.1.
  • Kürzlich haben wir auf VS 2017 migriert und beim Öffnen derselben Lösung wurde der Test nicht im Test-Explorer angezeigt

Beim Erstellen wird folgende Meldung angezeigt:

[Informational] NUnit Adapter 3.10.0.21: Test discovery starting
[Informational] Assembly contains no NUnit 3.0 tests: C:\ihealautomatedTests\SeleniumTest\bin\x86\Debug\SeleniumTest.dll
[Informational] NUnit Adapter 3.10.0.21: Test discovery complete

Lösung (vorübergehend):

  • Deinstallieren Sie NUnit Adapter 3.10 ...
  • Installieren Sie den NUnit VS Adapter 2.1.

Nun werden die Tests angezeigt.

Andrew Homsky
quelle
Bitte extrahieren Sie Ihre (zumindest scheinbar) neue Frage in einen eigenen Beitrag, um eine klare Antwort zu erhalten :)
geisterfurz007
... mit dem Titel "Warum sieht der NUnit TestAdapter v3 meine NUnit v2-Tests nicht?" Und a) pingen Sie hier b) und setzen Sie oben ein "siehe auch <link>" (auch wenn es etwas schwach ist), aber ich würde wie diese Antwort entfernt, da sie nicht gut xUnit v2 testszum Titel passt .
Ruben Bartelink
0

Überprüfen Sie auch, ob sich eine vollständig leere app.config-Datei (vollständig leer ohne Markup) im Testprojekt befindet. Dies war der Schuldige in meinem Fall.

Gopal Krishnan
quelle
0

In meinem Fall habe ich eine neue "Lösungskonfiguration" erstellt, wie im Bild gezeigt. Wenn ich also meine benutzerdefinierte als "Prod" auswähle, erkennt sie TestMehods aus irgendeinem Grund nicht. Ein Wechsel zurück zu "Debug" löst das Problem

Geben Sie hier die Bildbeschreibung ein

Batmaci
quelle
0

Ich weiß nicht, ob einige von Ihnen auch JustMock verwenden, aber ich musste den Profiler in VS 2017 deaktivieren, damit die Testerkennung funktioniert.

chrisdrobison
quelle
Hmmm. Wenn Sie es wieder einschalten, schlägt es sofort wieder fehl?
Ruben Bartelink
Ja. Wenn ich die Lösung schließe, den Profiler einschalte und wieder einsteige, schlägt die Testerkennung fehl.
chrisdrobison