web-dev-qa-db-fra.com

Les tests unitaires Xunit ne seront pas exécutés

Je suis complètement coincé sur cette question. Mon équipe a donc un projet de test unitaire dans un projet de test de services. Les tests sont découverts dans le volet Test Explorer. Cependant, lorsque j'essaie d'exécuter les tests, j'obtiens les erreurs suivantes: 

'Plusieurs adaptateurs de test avec le même uri 'executor: // xunit/VsTestRunner2' ont été trouvés. Ignorant l'adaptateur "Xunit.Runner.VisualStudio.TestAdapter.VsTestRunner". S'il vous plaît désinstaller la ou les cartes en conflit pour éviter cet avertissement '

'[xUnit.net 00: 00: 00.0251250] Saut: (impossible de trouver Assembly dépendant' Microsoft.Extensions.DependencyModel, Version = 1.1.0 ')'

'Aucun test n'est disponible dans C: \. Assurez-vous que ce test Le découvreur et les exécuteurs sont enregistrés et la version de la plateforme et du framework les réglages sont appropriés et réessayez.

Informations de contexte:

  • Xunit 2.2.0
  • Visual Studio 15.5.2
  • Windows 10 1709 version: 16299.125

Mes projets de test project.json: 

{
   "version": "1.0.0-*",
   "testRunner": "xunit",
    "dependencies": {
       "dotnet-test-xunit": "2.2.0-preview2-build1029",
       "Microsoft.AspNetCore.Mvc.ViewFeatures": "1.1.3",
       "Microsoft.DiaSymReader": "1.0.8",
       "Microsoft.DiaSymReader.Native": "1.4.1",
       "Microsoft.Extensions.Logging.Abstractions": "1.1.2",
       "Microsoft.Extensions.Testing.Abstractions": "1.0.0-preview2-003121",
       "Newtonsoft.Json": "9.0.1",
       "WebServices": "1.0.0-*",
       "xunit": "2.2.0",
       "xunit.abstractions": "2.0.1",
       "xunit.assert": "2.2.0",
       "xunit.core": "2.2.0",
       "xunit.extensibility.core": "2.2.0",
       "xunit.extensibility.execution": "2.2.0",
       "xunit.runner.utility": "2.2.0"
   },
   "frameworks": {
    "net461": {
        "dependencies": {
            "Microsoft.NETCore.Platforms": "1.1.0"
        }
    }
}

La chose étrange est que cela fonctionne pour les membres de mon équipe. Mais pas moi. Les différences entre nos environnements sont les suivantes: la dernière mise à jour de Windows et de Visual Studio, alors qu’elles sont une mise à jour ou deux en retard. 

Quelqu'un connaît-il une solution de rechange?

16
CMR

J'ai eu le même problème et je l'ai résolu en mettant à jour Visual Studio 2017 de 15.5.2 à 15.5.4 et en mettant à jour mes références de projet de test à partir de:

<ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0-preview-20170628-02" />
    <PackageReference Include="xunit" Version="2.2.0" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
</ItemGroup>

à:

<ItemGroup>
    <PackageReference Include="xunit" Version="2.3.1" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
</ItemGroup>

Et redémarrer Visual Studio (apparemment, les caches VS utilisent la version précédente même après la mise à jour).

Je ne sais pas si l'une des 3 choses ou la combinaison de celles-ci l'a corrigée.

12
Xavier Poinas

L'installation ou la mise à jour du paquetage "xunit.runner.visualstudio" a été très utile. Jusque-là, il ne fonctionnait pas avec le framework 462.

8
Pravin

J'ai rencontré le même problème, mais Visual Studio 2017 15.5.4 est déjà installé. Pour que cela fonctionne, j'ai mis à jour toutes les références liées à xunit et maintenant mes références pertinentes .csproj se présentent comme suit:

<ItemGroup>
   <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
   <PackageReference Include="xunit" Version="2.3.1" />
   <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
</ItemGroup>

Je ne sais pas vraiment ce qui ne fonctionnait pas, mais mon conseil est de veiller à ce que ces références se trouvent dans csproj et disposent de ces versions minimales.

1
Alexei

J'avais un problème similaire au vôtre, déclarant could not find dependent Assembly; alors que cette assemblée était là et à la disposition du coureur de xUnit VS. Cependant, quel était le problème, Visual Studio était-il configuré pour utiliser le lanceur de test 32bit par défaut? L '«Assemblée dépendante» qu'il n'a pas pu trouver était simplement une architecture de processeur différente de celle du programme d'exécution de test xUnit utilisé.

Pour résoudre, comme indiqué dans le menu Visual Studio, here , accédez à Test -> Test Settings -> Default Processor Architecture et définissez-le sur X64 si vous utilisez des assemblys 64bit ou X86 si vous utilisez des assemblys 32bit. L'erreur que le runner xUnit VS donne est très trompeuse pour essayer de déboguer ce problème.

J'ai rencontré ce problème lors de l'installation de Visual Studio sur un nouvel ordinateur. Les tests s'exécutent sur mon ordinateur de bureau dans Visual Studio, mais pas sur mon ordinateur portable.

0
Michael Yanni