2009-09-15 7 views
50

Question rapide, comment créer une méthode qui n'est exécutée qu'une seule fois avant que tous les tests de la solution ne soient exécutés.Méthode d'initialisation de test global pour MSTest

+0

Je voudrais savoir, aussi :(Actuellement, j'ai une classe de base abstraite dont chaque TestClass hérite.A l'intérieur de cette classe, j'ai une méthode TestInitialize.Le problème est, cette méthode est déclenchée chaque fois qu'un nouveau test est exécuté ! –

+0

Si cette classe de base abstraite implémente un constructeur statique, elle ne sera déclenchée qu'une seule fois avant l'exécution des tests – mglmnc

Répondre

88

Créez une méthode statique publique, décorée avec l'attribut AssemblyInitialize. Le cadre de test appellera cette Setup méthode une fois par essai:

[AssemblyInitialize()] 
public static void MyTestInitialize(TestContext testContext) 
{} 

Pour TearDown son:

[AssemblyCleanup] 
public static void TearDown() 
{} 

EDIT:

Un autre détail très important: la classe auquel cette méthode appartient doit être décoré avec [TestClass]. Sinon, la méthode d'initialisation ne sera pas exécutée.

+3

Si vous avez des tests dans plusieurs assemblages, MyTestInitialize sera appelée plusieurs fois pour votre test. . – BenCr

Questions connexes