Comment commander les méthodes d'exécution à l'aide de Visual Studio pour faire des tests d'intégration?
J'ai 2 questions en ce qui concerne de faire des tests d'intégration à l'aide de VS 2010
D'abord, je suis vraiment dans le besoin de trouver une façon d'exécuter ces tests méthodes dans l'ordre, je les veux. Note: je sais que dans les Tests Unitaires, les méthodes doivent fonctionner de manière autonome à partir de quelque chose d'autre, mais ce sont des tests d'intégration dont je ne dépendent de l'ordre de la méthode qui s'exécute en premier.
Sur la même note, il est un moyen de garder une variable locale à travers l'exécution de ces tests? Comme par exemple le code suivant qui en ce moment échoue.
[TestClass]
public class UnitTest1
{
int i = 0;
[TestMethod]
public void TestMethod1()
{
i = 5;
}
[TestMethod]
public void TestMethod2()
{
Assert.AreEqual(5, i);
}
}
Donc, il y a un moyen de le faire un de ces?
Vous devez vous connecter pour publier un commentaire.
Exécuter des tests dans un ordre précis, j'ai suivi les étapes suivantes:
Dans un projet de test avec test1, test2 et test3
1 cliquez-Droit sur le projet "Ajouter" -> " nouveau test..."
2 Sélectionnez "Test Ordonné'
3 Double-cliquez sur le fichier qui s'affiche "OrderedTest1.orderedtest"
4 Construire le projet, si ce n'était pas de construire précédemment
5 dans la liste de test, sélectionnez le test que vous voulez et de les ordonner
Partir de ce point, il apparaît un nouveau test dans le test de l'éditeur de liste d'
C'est un test qui exécute le clos des tests dans l'ordre correct, mais si vous exécutez un test dans le projet négligemment les tests inclus dans la liste ordonnée sera exécutée deux fois de sorte que vous besoin de quelque sorte gérer des listes ou des catégories test pour l'éviter.
J'ai essayé de désactiver les tests individuels, mais désactive également le test ordonné, je ne sais pas une meilleure façon de le faire.
Il est préférable d'utiliser des fonctions pour définir les tests et de les nettoyer, en utilisant les attributs [TestInitialize] et [TestCleanUp] ou [ClassInitialize] et [ClassCleanup].
http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.unittesting(v=VS.100).aspx
Le code suivant est un exemple de quelque chose de similaire à ce que vous voulez:
La conguration de la fonction sera appelée avant l'exécution de chaque test.
Si vous avez besoin de passer la valeur d'un test à l'autre, vous pouvez envisager d'utiliser une variable statique qui n'est pas recommandé en raison de la indeterministic ordre d'exécution.
Habituellement, il est un moyen d'éviter d'avoir besoin d'une commande spécifique, en utilisant le programme d'installation/de nettoyage de la technique, mais c'est vrai que cela pourrait ne pas être vrai pour de très complexe des tests d'intégration.
Si il n'est pas possible d'éviter d'avoir à réorganiser, vous pouvez envisager de les fusionner en un seul, brisant à nouveau le meilleur de la pratique de n'avoir qu'un faire valoir pour tester, mais si ils sont tellement dépendants l'un de l'autre, il pourrait être encore mieux de cette façon, comme dans ce cas, un test à défaut pourrait compromettre le résultat des autres.
EDIT:
Peut être commandé à l'aide de tests de réponses à la question 1, et à l'aide de variables statiques de la question 2:
http://msdn.microsoft.com/en-us/library/ms182631.aspx