Sont TestContext.Propriétés utilisables?

À l'aide de Visual Studio générer de l'Unité de Test de la classe. Commentaire puis dans la classe une méthode d'initialisation. À l'intérieur il ajouter votre propriété, à l'aide de la testContext argument.

Lors de l'application de test de démarrage de cette méthode est appelée par l'infrastructure de test.

//Use ClassInitialize to run code before running the first test in the class
[ClassInitialize()]
public static void MyClassInitialize(TestContext testContext)
{
    /*
     * Any user defined testContext.Properties
     * added here will be erased after this method exits
     */
   testContext.Properties.Add("key", 1 ) ; //place the break point here
}

Après avoir quitté MyClassInitialize, toutes les propriétés ajoutés par l'utilisateur sont perdus. Seulement les 10 "officielles" sont à gauche.

Fait TestContext est écrasée, avec le premier officielles, l'une, à chaque fois avant chaque méthode de test est appelé. Il n'est donc pas remplacé uniquement si l'utilisateur a test de la méthode d'initialisation, les changements apportés au fil il y a passé le test.

//Use TestInitialize to run code before running each test
[TestInitialize()]public void MyTestInitialize(){ 
     this.TestContext.Properties.Add("this is preserved",1) ;
}

Cela signifie TestContext.Propriétés est "la plupart" en lecture seule pour les utilisateurs. Ce qui n'est pas clairement documentée dans MSDN.

Il me semble que c'est très salissant design+mise en œuvre. Pourquoi avoir TestContext.Propriétés d'une collection, à tous ? Les utilisateurs peuvent effectuer de nombreuses autres solutions pour avoir l'ensemble de la classe d'initialisation.

InformationsquelleAutor | 2010-03-25