Attardons-nous sur une nouvelle fonctionnalité très intéressante annoncée lors de la web conférence Connect(); // 2016, à savoir l’exécution automatique de tests unitaires dans Visual Studio Enterprise 2017. Cette fonctionnalité vous permettra d’augmenter grandement votre productivité, la qualité ainsi que la couverture de code de vos projets. Visual Studio 2017 vous facilite tant la tâche que vous aimeriez presque écrire des tests unitaires, si ce n’est pas déjà le cas.
Pendant l’édition de votre code, Visual Studio 2017 exécute automatiquement les tests unitaires en arrière-plan. Vous pourrez ainsi visualiser les résultats et la couverture de code quasi-instantanément ! Et pour que cela soit possible sans trop d’impact sur les performances, le compilateur C# identifie intelligemment les tests couvrants vos modifications.
Activation de l’exécution des tests automatiques
Pour activer cette fonctionnalité, il suffit de se rendre dans le menu Test puis Live Unit Testing, comme indiqué dans la capture d’écran suivante :
Actuellement, les frameworks de tests supportés sont MSTest, NUnit et xUnit. Selon celui que vous utilisez, il faudra un adaptateur téléchargeable sous forme de package Nuget. Attention, si vous avez créé un projet de tests unitaires basique via Visual Studio, pensez à retirer la référence vers l’assembly Microsoft. VisualStudio. QualityTools. UnitTestFramework.
Voici la liste des packages Nuget à ajouter en fonction du framework de test :
- Pour MSTest : MSTest.TestAdapter 1.1.6-preview et MSTest.TestFramework 1.0.7-preview
- Pour NUnit (à partir de la version 3.5) : NUnit3TestAdapter version 3.6.0
- Pour xUnit (à partir de la version 2.0) : xunit.runner.visualstudio 2.2.0-beta4-build1194
Affichage des résultats
Vous pouvez vérifier que votre code est couvert par un ou plusieurs tests, et si ceux-ci sont concluants ou non, au sein de l’éditeur dans la marge à gauche. Pour chaque ligne de code, une icône indique son statut :
Code couvert par au moins un test en succès
Code couvert par au moins un test en échec
Code qui n’est couvert par aucun test
Et voilà ! Vous n’aurez plus besoin d’exécuter les tests unitaires manuellement. Il est désormais facile d’identifier le code qui n’est pas couvert par des tests. Pour avoir plus de détails sur la couverture, vous pouvez survoler l’icône à côté de la ligne. Une popup indiquera le nombre de tests impliqués. En cliquant sur l’icône, vous obtiendrez la liste des tests avec la possibilité d’y accéder dans un autre onglet.
Conclusion
Il était jusqu’à présent possible d’exécuter des tests automatiquement avec d’autres très bons outils payants tels que JetBrains dotCover ou NCrunch. Visual Studio 2017 arrivera-t-il à les remplacer ? Pour ma part, j’ai constaté que NCrunch exécute les tests plus rapidement et fournit beaucoup plus d’options. Je ne suis pas sûr de le remplacer de sitôt, j’attends la version finale de Visual Studio 2017 afin de me prononcer.
Si vous n’étiez pas encore convaincus par le développement piloté par les tests, téléchargez donc Visual Studio 2017 RC pour vous faire un avis !