Quelle est la différence entre TestInitialize
et ClassInitialize
dans MSTest? Quels sont les avantages et les inconvénients de chacun?
J'ai l'impression que TestInitialze
devrait s'exécuter avec CHAQUE test, à chaque fois? Est-ce exact? Et que ClassInitialize
s'exécutera à chaque fois qu'une nouvelle instance d'une classe?
Les deux attributs sont disponibles uniquement pour les classes (et donc les tests) auxquelles ils appartiennent.
TestInitialize
s'exécute avant chaque test déclaré sur la même classe où l'attribut est déclaré.
ClassInitialize
s'exécute uniquement à l'initialisation de la classe où l'attribut est déclaré. En d'autres termes, il ne fonctionnera pas pour chaque classe. Juste pour la classe qui contient la méthode ClassInitialize
.
Si vous voulez une méthode qui s'exécute une fois avant tous les tests ou l'initialisation des classes, utilisez AssemblyInitialize
.