web-dev-qa-db-fra.com

Conseils pour l'exécution de tests à l'aide de MSTest v1 dans Visual Studio 2017 15.8.1

Je suis passé à Visual Studio 2017 la semaine dernière. Une solution avec plusieurs projets de test utilisant MSTest v1 semblait bien fonctionner au début. La plupart des projets de test exécutent bien les tests. Ceci est .NET Framework, pas .NET Core.

Cependant, il y a un projet où je rencontre des problèmes. C'est un projet de test d'intégration, ce qui signifie qu'il exécute des tests d'application Web à l'aide de ChromeDriver et de Selenium. Ce projet fait référence à NUnit, bien que cette référence provienne d'une autre référence de projet. Je n'utilise pas réellement NUnit comme cadre de test.

Voici l'erreur lorsque vous essayez d'exécuter un test dans ce projet de test particulier: Could not find test executor with URI 'executor://mstestadapter/v1'. Make sure that the test executor is installed and supports .net runtime version .Test project {name} does not reference any .NET NuGet adapter. Test discovery or execution might not work for this project.It's recommended to reference NuGet test adapters in each test project in the solution.

La désactivation de l’option indiquée ci-dessous a tout mis en oeuvre:  Screen shot of Visual Studio 2017 Options, Test setting.

J'ai trouvé cette solution après avoir parcouru les notes de version d'aperçu à l'adresse suivante: https://docs.Microsoft.com/en-us/visualstudio/releasenotes/vs2017-preview-relnotes#--visual-studio-2017-version-158-preview -4 (faites défiler jusqu'à "... Quoi de neuf ..." puis Extension de l'adaptateur de test .NET). Il mentionne ce changement radical (bien que cela n’ait pas cassé mes autres projets), mais il n’ya aucune mention de ce qu’il faut réellement faire pour résoudre le problème.

Bien sûr, garder cette option incontrôlée à long terme ne semble pas faisable. Je cherche donc des conseils sur la manière de procéder.

J'ai déjà essayé de voir si je pouvais mettre à niveau "rapidement" MSTest v2, mais cela posait un problème, car System.Runtime 4.1.2 était introuvable. J'ai essayé d'ajouter System.Runtime 4.3.0 via NuGet, mais cela n'a pas résolu le problème.

23
SvenAelterman

J'avais un problème similaire sous Xamarin.UITests et l'ai résolu en installant l'adaptateur de test NUnit 2 dans Visual Studio.

1
Caltor

Il serait intéressant de comprendre comment l’assemblage de la structure MSTest V1 (Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll) est référencé dans ce projet. La case à cocher de compatibilité qui a également fini par être désactivée dans l'image ci-dessus doit garantir que ce projet comporte des tests MSTestV1 et des tests d'exécution activés. Si ce n'est pas le cas, pour une raison quelconque, la logique de détection est défaillante et doit être corrigée - un extrait de code sur la façon dont l'assembly est référencé serait utile. 

Pour ce qui est de passer à MSTest V2, ce blog devrait vous aider: https://blogs.msdn.Microsoft.com/devops/2016/06/17/taking-the-mstest-framework-forward-with-mstest-v2/ . Et pour le problème spécifique que vous semblez rencontrer, ce problème de github sur le référentiel semble similaire: https://github.com/Microsoft/testfx/issues/184 .

1
Abhitej

"... mais cela posait un problème, car System.Runtime 4.1.2 était introuvable."

Je pense que ceci est un paramètre du fichier app.config qui n'est pas mis à jour lorsque les paramètres du projet sont mis à jour. J'ai cherché System.Runtime dans le dossier packages, puis modifié mon app.config pour qu'il corresponde à ce que j'ai trouvé, puis le problème a disparu.

0
ChrisG65