J'aime vraiment le nouveau format .csproj
. C'est tellement mieux que cela project.json
redouté (limité).
Cependant, il y a une chose que j'essaie de résoudre. J'ai fusionné mes (multiples) projets de test dans un seul projet multi-ciblé.
<TargetFrameworks>netcoreapp1.0;net40;net35</TargetFrameworks>
Cependant, il ne semble pas exister d’outil dans Test Explorer dans Visual Studio pour sélectionner le framework cible. Il ne fait toujours que lancer le premier. J'ai trouvé une solution de contournement: ajouter un élément <TargetFramework>
avec un cadre spécifique ...
<TargetFramework>net35</TargetFramework>
Mais, y a-t-il un moyen de sélectionner le framework cible sans recourir à l'édition manuelle du fichier MSBuild (.csproj
)? Je cherche une option dans l’interface graphique pour le faire - en particulier pour ne pas avoir à modifier le fichier .csproj
afin de changer de framework avant de déboguer un test ou à retirer cette ligne avant la publication.
Je sais que la question concerne VS, mais je trouve utile que lors du ciblage de plusieurs frameworks, dotnet tests
commande exécute des tests pour tous les frameworks in <TargetFrameworks>
node:
> dotnet test
...
Test run for [projectPath]\bin\Debug\netcoreapp1.1\XUnitTestProject.dll(.NETCoreApp,Version=v1.1)
...
Test run for [projectPath]\bin\Debug\net461\XUnitTestProject.dll(.NETFramework,Version=v4.6.1)
...
NCrunch peut également reconnaître plusieurs cibles et exécuter des tests pour chaque cible automatiquement:
Utilisez TargetFrameWorkVersion dans un fichier runsettings à l'aide de l'opérateur 'ou'.
La meilleure option est actuellement de changer l’ordre des frameworks cibles dans csproj.
<PropertyGroup>
<TargetFrameworks>netcoreapp2.1;net45;net46;net461;net462;net47</TargetFrameworks>
</PropertyGroup>
Si vous souhaitez déboguer des tests unitaires pour le framework net45, vous devrez le modifier en:
<PropertyGroup>
<TargetFrameworks>net45;net46;net461;net462;net47;netcoreapp2.1</TargetFrameworks>
</PropertyGroup>
L'interface utilisateur permettant de faire cela dans Visual Studio serait relativement simple à implémenter, mais ils ne l'ont pas encore fait pour cette réponse.