Prérequis
Maîtrise C# et intégration Visual Studio. Expérience antérieure avec un framework de test (xUnit, NUnit) ou connaissances de base en testing unitaire.
Durée
2 jours
Contenu Technique de la Formation
MSTest v2 est le framework de test natif Microsoft, étroitement intégré à Visual Studio Test Explorer et Azure DevOps. Cette formation couvre l’initialisation/cleanup, la paramétrisation [DataTestMethod], les assertions et le déploiement d’artefacts.
- [TestMethod] et [DataTestMethod] — tests simples et data-driven avec [DataRow]
- TestContext et propriétés contextuelles — accès aux paramètres, chemins déploiement
- TestInitialize/Cleanup — setup/teardown par test, lifecycle
- [DataRow] et [DynamicData] — paramétrisation inline et sources externes
- [DeploymentItem] et [AssemblyInitialize] — fichiers déployés et initialisation globale
- Intégration Visual Studio Test Explorer et Azure Pipelines — exécution parallèle, publication rapports
Objectifs de la Formation
Les objectifs visés par cette formation sont :
- Structurer des tests MSTest v2 avec [TestMethod] et [DataTestMethod]
- Implémenter TestInitialize/Cleanup pour l’initialisation par test
- Paramétrer des tests avec [DataRow] et [DynamicData]
- Déployer des ressources avec [DeploymentItem] pour tests d’intégration
- Intégrer MSTest dans Visual Studio Test Explorer et Azure DevOps pipelines
- Diagnostiquer des failures et collecter des données de diagnostic via TestContext
Table des Matières
Fondamentaux MSTest v2 et structure
- [TestClass] et [TestMethod] : organisation et classe
- TestContext : propriétés et accès au contexte d’exécution
- Assert.AreEqual, Assert.IsTrue, Assert.ThrowsException
- Nommage : Method_Input_Output ou Given_When_Then
Initialisation et cleanup
- [TestInitialize] et [TestCleanup] : par test
- [ClassInitialize] et [ClassCleanup] : par classe (static)
- [AssemblyInitialize] et [AssemblyCleanup] : par assembly (global)
- Async : [TestInitialize] async/await et Task
Données paramétrées et déploiement
- [DataTestMethod] avec [DataRow] inline
- [DynamicData] et PropertyName pour sources externes
- [DeploymentItem] : fichiers, répertoires, dlls additionnelles
- TestDeploymentDir et répertoire d’exécution
Intégration Visual Studio et diagnostics
- Test Explorer : grouping, filtering, playlists
- TestContext.Properties et données contextuelles
- TestContext.WriteLine et logs d’exécution
- IsExpectedException et exception handling
- Timeout avec [Timeout] attribute
Azure Pipelines et CI/CD
- vstest@2 task : MSTest runner standard
- Parallèle avec runInParallel: true
- PublishTestResults : pubblica TRX, JSON, résumés
- codecoverage et Cobertura XML
- Test flakiness detection et retry strategies
En Pratique
Suite de tests [TestMethod] et [DataTestMethod]
- Écrire des tests unitaires avec [TestMethod] et valider avec Assert
- Paramétrer des tests avec [DataRow] et [DynamicData] pour couvrir plusieurs scénarios
Configuration TestInitialize/Cleanup
- Implémenter TestInitialize et TestCleanup pour gérer des ressources partagées
- Utiliser ClassInitialize et AssemblyInitialize pour le setup global
Déploiement de fichiers et intégration Visual Studio
- Déployer des fichiers de configuration avec [DeploymentItem]
- Exécuter et organiser les tests dans Visual Studio Test Explorer
Pipeline Azure DevOps avec MSTest
- Configurer vstest@2 dans Azure Pipelines avec exécution parallèle
- Publier les rapports TRX et les métriques de couverture de code
Modalités et Inscription
Cette formation est proposée selon deux formules pour s'adapter au mieux à vos besoins :
Session régulière
Des sessions sont organisées à intervalles réguliers. Demandez les prochaines dates planifiées pour vous inscrire à la prochaine session.
Sur mesure & intra-entreprise
Vous souhaitez former vos équipes directement dans vos locaux ou adapter le programme technique à votre contexte d'entreprise ? Contactez-nous pour obtenir un devis personnalisé.