Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Cet article présente le concept de test et illustre la façon dont différents types de tests peuvent être utilisés pour valider le code. Différents outils sont disponibles pour tester des applications .NET, telles que l’interface CLI .NET ou les environnements de développement intégré (IDE).
Types de test
Les tests automatisés sont un excellent moyen de s’assurer que le code de l’application fait ce que ses auteurs ont l’intention. Cet article traite des tests unitaires, des tests d’intégration et des tests de charge.
Tests unitaires
Un test unitaire est un test qui exerce des composants logiciels ou des méthodes individuels, également appelé « unité de travail ». Les tests unitaires doivent uniquement tester le code dans le contrôle du développeur. Ils ne testent pas les problèmes d’infrastructure. Les problèmes d’infrastructure incluent l’interaction avec les bases de données, les systèmes de fichiers et les ressources réseau.
Pour plus d’informations sur la création de tests unitaires, consultez Outils de test.
Tests d’intégration
Un test d’intégration diffère d’un test unitaire dans lequel il exerce deux composants logiciels ou plus capables de fonctionner ensemble, également appelé « intégration ». Ces tests fonctionnent sur un spectre plus large du système testé, tandis que les tests unitaires se concentrent sur des composants individuels. Souvent, les tests d’intégration incluent des problèmes d’infrastructure.
Tests de charge
Un test de charge vise à déterminer si un système peut gérer ou non une charge spécifiée. Par exemple, le nombre d’utilisateurs simultanés utilisant une application et la capacité de l’application à gérer les interactions de manière réactive. Pour plus d’informations sur le test de charge des applications web, consultez ASP.NET test de charge/stress principal.
Considérations relatives aux tests
Gardez à l’esprit les meilleures pratiques pour l’écriture de tests. Par exemple, le développement piloté par les tests (TDD) est le moment où vous écrivez un test unitaire avant le code qu’il est destiné à vérifier. TDD est comme créer un plan pour un livre avant de l’écrire. Le test unitaire permet aux développeurs d’écrire du code plus simple, lisible et efficace.
Outils de test
Lors de l’exécution de tests dans .NET, il existe deux composants impliqués : la plateforme de test et l’infrastructure de test.
Plateformes de test
La plateforme de test est le moteur qui exécute les tests et agit en tant que canal de communication avec les IDEs et l’interface CLI. Par exemple, Visual Studio peut envoyer une demande de découverte à la plateforme de test afin qu’elle puisse afficher les tests disponibles dans l’Explorateur de tests. La plate-forme de test répond à l'IDE avec les tests qu'elle a trouvés. Une communication similaire se produit pour l’exécution des tests.
VSTest a été utilisé depuis de nombreuses années dans .NET et était la seule plateforme de test dans l’écosystème. Début 2024, la première version stable d’une nouvelle plateforme de test, appelée Microsoft.Testing.Platform (MTP), a été publiée. Pour plus d’informations sur la migration de VSTest vers Microsoft.Testing.Platform, consultez le guide de migration de VSTest vers Microsoft.Testing.Platform.
La plateforme de test fournit également des API d’extensibilité afin que des fonctionnalités supplémentaires puissent être implémentées et mises à disposition pour toutes les infrastructures de test. Il existe généralement des fonctionnalités intégrées basées sur les API d’extensibilité, telles que les rapports TRX et les vidages de blocage et de panne. La communauté peut également créer des extensions personnalisées qui fonctionnent pour toutes les infrastructures de test.
Frameworks de test
L’infrastructure de test est basée sur la plateforme de test. Il définit l’ensemble d’attributs et d’API disponibles pour vous, en tant qu’auteur de test. Il est généralement alimenté par un adaptateur de test, qui agit comme une couche de communication entre l’infrastructure de test et la plateforme de test. Les frameworks de test populaires sont MSTest, NUnit, TUnit et xUnit.net.
MSTest
MSTest est l’infrastructure de test Microsoft pour tous les langages .NET. Il est extensible et fonctionne avec .NET CLI, Visual Studio, Visual Studio Code et Rider. Il prend en charge VSTest et Microsoft.Testing.Platform.
Pour plus d’informations, consultez les ressources suivantes :
- Prise en charge de Microsoft.Testing.Platform dans MSTest (MSTest runner)
- Tests unitaires avec C#
- Tests unitaires avec F#
- Tests unitaires avec Visual Basic
NUnit
NUnit est une infrastructure de test unitaire pour tous les langages .NET. Initialement, NUnit a été porté à partir de JUnit, et la version de production actuelle a été réécrite avec de nombreuses nouvelles fonctionnalités et prise en charge d’un large éventail de plateformes .NET. C’est un projet de .NET Foundation. Il prend en charge VSTest et Microsoft.Testing.Platform.
Pour plus d’informations, consultez les ressources suivantes :
- Prise en charge de Microsoft.Testing.Platform dans NUnit (NUnit runner)
- Tests unitaires avec C#
- Tests unitaires avec F#
- Tests unitaires avec Visual Basic
TUnit
TUnit est entièrement basé sur Microsoft.Testing.Platform et ne prend pas en charge VSTest. Pour plus d’informations, reportez-vous à la documentation TUnit.
xUnit.net
xUnit.net est un outil de test unitaire gratuit, open source et axé sur la communauté pour .NET. L’inventeur original de NUnit v2 a écrit xUnit.net. xUnit.net est la dernière technologie de test unitaire des applications .NET. Il fonctionne également avec ReSharper, CodeRush et TestDriven.NET. xUnit.net est un projet de .NET Foundation et fonctionne sous son code de conduite. Il prend en charge VSTest et Microsoft.Testing.Platform
Pour plus d’informations, consultez les ressources suivantes :
- Prise en charge de Microsoft.Testing.Platform dans xUnit.net v3
- Tests unitaires avec C#
- Tests unitaires avec F#
- Tests unitaires avec Visual Basic
Exécution des tests
CLI .NET
Vous pouvez exécuter des tests unitaires à partir de tous les projets de test dans une solution à l’aide de l’interface CLI .NET avec la commande de test dotnet . L’interface CLI .NET expose la plupart des fonctionnalités que les environnements de développement intégrés (IDE) rendent disponibles via les interfaces utilisateur. L’interface CLI .NET est multiplateforme et peut être utilisée dans le cadre des pipelines d’intégration et de livraison continus. L’interface CLI .NET est utilisée avec des processus scriptés pour automatiser les tâches courantes.
IDE
Que vous utilisiez Visual Studio, Visual Studio Code ou Rider, il existe des interfaces utilisateur graphiques pour tester les fonctionnalités. Il existe plus de fonctionnalités disponibles pour les IDE que l’interface CLI, par exemple Live Unit Testing. Pour plus d’informations, consultez Inclure et exclure des tests avec Visual Studio.
Voir aussi
Pour plus d’informations, consultez les articles suivants :