web-dev-qa-db-fra.com

Impossible d'exécuter des tests Xunit sur Visual Studio 2017

Impossible d'exécuter tous les tests XUnit sur mon Visual Studio 2017. Version 15.6.4

Ils peuvent être consultés dans TestExploer et quand je les lance à partir de là, j'obtiens quelque chose comme ceci:

[27.03.2018 12:21:46 Informational] ------ Load Playlist started ------
[27.03.2018 12:21:46 Informational] ========== Load Playlist finished 
(0:00:00,0215566) ==========
[27.03.2018 12:22:27 Informational] Executing test method 'Lebara.Remittance.Test.ServiceImplementation.RiskEngineServiceTest.ShouldTest'
[27.03.2018 12:22:27 Informational] ------ Run test started ------
[27.03.2018 12:22:29 Warning] Multiple test adapters with the same uri 
'executor://xunit/VsTestRunner2' were found. Ignoring adapter 
'Xunit.Runner.VisualStudio.TestAdapter.VsTestRunner'. Please uninstall the 
conflicting adapter(s) to avoid this warning.
[27.03.2018 12:22:29 Warning] [xUnit.net 00:00:00.0209459] Skipping: 
Lebara.Remittance.Test (could not find dependent Assembly 
'Microsoft.Extensions.DependencyModel, Version=1.1.0')
[27.03.2018 12:22:29 Warning] No test is available in C:\ReposNew\Lebara.Remittance\Lebara.Remittance\Lebara.Remittance.Test\bin\Debug\Lebara.Remittance.Test.dll. Make sure that test discoverer & executors are registered and platform & framework version settings are appropriate and try again.
[27.03.2018 12:22:29 Informational] ========== Run test finished: 0 run 
(0:00:02,1543479) ==========
[27.03.2018 12:34:19 Informational] Executing test method 'Lebara.Remittance.Test.ServiceImplementation.RiskEngineServiceTest.ShouldTest'
[27.03.2018 12:34:19 Informational] ------ Run test started ------
[27.03.2018 12:34:20 Warning] Multiple test adapters with the same uri 
'executor://xunit/VsTestRunner2' were found. Ignoring adapter 
'Xunit.Runner.VisualStudio.TestAdapter.VsTestRunner'. Please uninstall the 
conflicting adapter(s) to avoid this warning.
[27.03.2018 12:34:20 Warning] [xUnit.net 00:00:00.0200861] Skipping: 
Lebara.Remittance.Test (could not find dependent Assembly 
'Microsoft.Extensions.DependencyModel, Version=1.1.0')
[27.03.2018 12:34:20 Warning] No test is available in C:\ReposNew\Lebara.Remittance\Lebara.Remittance\Lebara.Remittance.Test\bin\Debug\Lebara.Remittance.Test.dll. Make sure that test discoverer & executors are registered and platform & framework version settings are appropriate and try again.
[27.03.2018 12:34:20 Informational] ========== Run test finished: 0 run 
(0:00:00,7088116) ==========

J'ai essayé de supprimer %TEMP%\VisualStudioTestExplorerExtensions - rien n'y fait.

Le truc, c'est qu'il y a plusieurs jours, je pouvais les faire fonctionner. Je n'ai rien changé. Je n'ai aucune idée de ce qui se passe.

J'ai aussi eu cet avertissement

 [27.03.2018 12:22:29 Warning] Multiple test adapters with the same uri 
 'executor://xunit/VsTestRunner2' were found. Ignoring adapter 
 'Xunit.Runner.VisualStudio.TestAdapter.VsTestRunner'. Please uninstall the 
 conflicting adapter(s) to avoid this warning.
 [27.03.2018 12:22:29 Warning] [xUnit.net 00:00:00.0209459] Skipping: 
 Lebara.Remittance.Test (could not find dependent Assembly 
 'Microsoft.Extensions.DependencyModel, Version=1.1.0')
11
Rostyslav Fedyk

J'ai eu des problèmes avec xUnit. Quelques choses importantes:

1) Assurez-vous que l'extension "Microsoft Visual Studio Test Platform" est activée

2) Assurez-vous que "Test => Paramètres de test => Architecture de processeur par défaut" correspond à votre version.

3) Installez le paquet nuget 'xunit.runner.visualstudio'

12
FrankyHollywood

Si vous utilisez .NET Core ou ASP.NET Core, alors à partir de xunit ( https://xunit.github.io/docs/getting-started-dotnet-core.html ):

Exécution de tests avec Visual Studio

Si vous rencontrez des problèmes pour découvrir ou exécuter des tests, vous pouvez être victime d'un cache de runner corrompu dans Visual Studio. Pour effacer ce cache, arrêtez toutes les instances de Visual Studio, puis supprimez le dossier% TEMP%\VisualStudioTestExplorerExtensions. Assurez-vous également que votre solution n'est liée qu'à une seule version du package NuGet du runner Visual Studio (xunit.runner.visualstudio).

Si vous disposez de la communauté Visual Studio (ou d'une version payante de Visual Studio), vous pouvez exécuter vos tests xUnit.net dans le programme d'exécution de test intégré de Visual Studio (nommé Test Explorer). Malheureusement, cela n'inclut pas les éditions Express de Visual Studio (vous devriez plutôt passer à l'édition communautaire gratuite).

Cliquez avec le bouton droit sur le projet dans l'Explorateur de solutions et choisissez Gérer les packages NuGet. Vous devrez installer deux packages:

xunit.runner.visualstudio (version 2.3.1 or later)
Microsoft.NET.Test.Sdk (version 15.0.0 or later; we recommend using whatever the latest RTM build is)

Assurez-vous que l'Explorateur de tests est visible (accédez à Test> Windows> Explorateur de tests). Chaque fois que vous construisez votre projet, le coureur découvrira des tests unitaires dans votre projet. Après un moment de découverte, vous devriez voir la liste des tests découverts:

Cliquez sur le lien Exécuter tout dans la fenêtre de l'Explorateur de tests et vous devriez voir la mise à jour des résultats dans la fenêtre de l'Explorateur de tests pendant l'exécution des tests:

Vous pouvez cliquer sur un test ayant échoué pour voir le message d'échec et la trace de la pile. Vous pouvez cliquer sur les lignes de trace de la pile pour vous diriger directement vers la ligne de code défaillante.

Mentionne également

Exécution de tests sur plusieurs cibles

(si certains projets ciblent Core et d'autres ciblent .NET 4.5 par exemple.)

Autre possibilité:

Assurez-vous d'utiliser xunit 2.3.0+

7
Steve Padmore

J'ai rencontré le problème il y a quelques semaines lorsque j'ai mis à niveau xUnit vers 2.4.0-beta.1. L'Explorateur de tests de Visual Studio a récupéré les deux adaptateurs de test xUnit et a échoué avec le message ci-dessus.

Malheureusement, ce n'était pas une simple question de mise à niveau vers la dernière mise à jour de VS car j'utilisais déjà la dernière. J'utilisais déjà la dernière version du Microsoft.NET.Test.Sdk package aussi. Rétrogradation vers la dernière version stable 2.3.1 ne fonctionnait pas non plus, VS était toujours en train de choisir les deux adaptateurs.

Au final, j'ai dû supprimer manuellement les dossiers xUnit spécifiques à la version du dossier packages de la solution et le cache de NuGet dans %userprofile%\.nuget\packages.

Effacement des dossiers locaux dans Managing the global packages, cache, and temp folders devrait aussi aider. Si vous avez une connexion Internet rapide, vous pouvez essayer la commande "nuke it":

nuget locals all -clear
4
Panagiotis Kanavos