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.
- Je n'ai jamais compris le but de l'épreuve contexte que j'avais réellement l'utiliser.
- Le but est expliqué dans blogs.msdn.microsoft.com/vstsqualitytools/2006/01/09/...
Vous devez vous connecter pour publier un commentaire.
La TestContext est unique pour chaque test afin de l'initialiser dans le ClassInitialize ne fonctionnera pas. Vous devez utiliser uniquement pour TestInitialize, TestCleanup et TestMethod méthodes.
Ce post fait un bon travail en expliquant comment les tests à partir d'une classe sont exécutés, y compris le filetage.
Cela étant dit, je n'ai pas trouvé une utilisation encore pour le TestContext mais je suis de nouveau à MSTest. Je suis d'accord la documentation MSDN est source de confusion. Ayant l'ensemble de l'échantillon, les méthodes d'écriture de la console ou de jeter une boîte de message n'a rien à représenter les possibilités.
Je crois que vous devez conserver une copie de la testContext ou il va tomber hors de portée.
J'ai ajouté:
et ajouté à la Initialiser
Quand je regarde tc à partir de l'un de ces tests, il contient de la nouvelle propriété.
La TestContext est utilisé pour transmettre des informations dans vos tests à partir de l'extérieur. Grâce à l'essai de l'exécuteur testamentaire ou un .runsettings fichier de sorte que son généralement les données d'une seule manière.