web-dev-qa-db-fra.com

TestInitialize vs ClassInitialize

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?

64
snowmom475

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 .

94
chaliasos