quelqu'un peut-il m'aider à faire en sorte que VS2017 fonctionne avec des projets de test .NET Core?
J'ai essayé de créer des projets de test unitaire MSTest et xUnit pour .NET Core à partir des modèles VS 2017. Ni l'un ni l'autre ne fonctionne dans l'explorateur de test (non découvert), cependant l'exécution de dotnet test
à partir du dossier de projet fonctionne correctement.
Étapes à suivre pour reproduire:
Unit Test Project (.NET Core)
ou xUnit Test Project (.NET Core)
Run All
À ce stade, la fenêtre de sortie devrait vous indiquer que 0 test a été découvert.
.csproj
fichier:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp1.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
<PackageReference Include="xunit" Version="2.2.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
</ItemGroup>
</Project>
Si j'ai essayé de créer un projet de test d'unité MSTest à partir du modèle qui cible .NET Framework (complet, pas .NET Core), cela a fonctionné.
Des idées?
Finalement, le problème a été résolu en changeant mon système PATH
env. variable de C:\Program Files\dotnet\
à C:\Progra~1\dotnet\
, comme indiqué dans Impossible d'effectuer des tests XUnit avec Visual Studio 2017 RC
Merci à Alexey pour l'avoir suggéré dans les commentaires :)
Je pense avoir eu le même comportement. Essayez de construire votre solution afin que VS puisse découvrir vos tests. Sinon, merci de partager votre fichier de tests csproj pour vous assurer de référencer les bons packages. Le mien est:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp1.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
<PackageReference Include="xunit" Version="2.2.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
</ItemGroup>
</Project>
UPDATE: J'ai joué un peu et il semble que VS ne puisse pas trouver les tests sans <OutputType>Exe</OutputType>
UPDATE 2: Essayez également d'ajouter ce qui suit à csproj car je vois que VS ajoute dans certains cas.
<ItemGroup>
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>
VS 2017 n'a pas découvert les tests unitaires MSTest sur .NET Core.
La sortie Tests a seulement indiqué qu’elle avait découvert zéro test.
Lors de l'exécution de dotnet test MyProject.csproj -t
dans une invite de commande, il est indiqué que le runtime .NET Core correct n'a pas été installé pour correspondre à la RuntimeFrameworkVersion du projet.
L'installation de la dernière mise à jour de VS 2017 et du runtime .NET Core a résolu le problème.
J'ai eu le même problème. Je l'ai résolu en installant le package "Microsoft.NET.Test.Sdk" de nuget.
J'ai également eu ce problème et le problème a été résolu en veillant à ce que mon projet et mon projet test aient la même version de l'infrastructure cible dans le fichier .csproj
<TargetFramework>netcoreapp1.0</TargetFramework>
J'ai eu le même problème après la migration de project.json
à csproj
. Et résolu le problème en supprimant net451
framework cible et ne laissant que netcoreapp1.1
. Maintenant, cela fonctionne parfaitement et à découvrir à chaque fois.
Bien sûr, si vous avez besoin de plusieurs cibles de framework, vous ne devriez pas le faire, utilisez simplement CLI pour les tester ...
Assurez-vous également que vous n'avez pas versions mixtes de PackageReference} dans les fichiers * .csproj lorsque vous avez plusieurs projets test et le même répertoire de sortie, ainsi que mettez à jour les packages du projet test}, en particulier MSTest. TestAdapter ainsi que MSTest.TestFramework
Cela peut être dû à des paramètres de projet incohérents pour Processor Architecture. La cible du projet de test doit correspondre à l'architecture de processeur par défaut du test.