2010-03-04 6 views
4

J'ai donc rencontré toutes sortes de problèmes intéressants dans VisualStudio 2008 lors de l'exécution de tests unitaires. Par exemple, lors de l'exécution de tests unitaires Visual Studio, certains tests échouent ensemble mais passent individuellement. Cela est dû au fait que certaines variables de niveau classe de cette classe de test sont réutilisées dans les tests unitaires.Exécuter des tests unitaires Visual Studio vs Run ReSharper Unit Tests, différences?

Maintenant normalement, je voudrais aller dans chaque classe et résoudre ce problème manuellement! Cependant, nous parlons de tests qui vont dans les milliers!

Maintenant, voici le dilemme intéressant, en utilisant à la fois ReSharper Unit Tests et TFS BuildServer ils passent ensemble!

Y at-il un moyen de configurer la solution de test d'unité VS pour qu'elle fonctionne de la même manière? Je veux éviter d'appeler les méthodes [TestInitialize] dans les méthodes [TestCleanup].

Répondre

4

Ceci est généralement un sous-produit de tests différemment ordonnés. ReSharper 4.x et versions antérieures exécute des tests unitaires en fonction de l'ordre dans lequel ils apparaissent dans le fichier source. Presque tous les autres coureurs testeurs effectuent des tests dans l'ordre alphabétique. Cette commande différente peut (mais ne devrait jamais) affecter si les tests réussissent ou échouent (en fonction des données restantes dans une base de données ou une statique).

ReSharper 5.0 n'utilise plus de coureur personnalisé et devrait donc corriger ces incohérences. Cependant, ce type d'incohérence indique un problème dans les tests. Certains laissent derrière eux des données indiquant qu'ils devraient être nettoyés et d'autres sont dépendants ou blessés des données laissées par un test précédent.

+0

C'est bon à savoir. Auriez-vous des suggestions sur la façon de résoudre ce problème :) Je suis au point où je veux presque appeler [TestInitialize] dans [TestCleanup]. – Andrew

Questions connexes