2010-06-29 10 views
4

Dans ma liste de tests, mon test ordonné apparaît et s'exécute, mais chaque test individuel qui compose la liste ordonnée est exécuté une deuxième fois en dehors de la liste si j'exécute tous les tests.À quoi servent les tests unitaires ordonnés dans Visual Studio?

Quel est le point de la liste ordonnée si elle doit également les exécuter de manière non déterministe? Est-ce que je manque quelque chose?

Répondre

1

Pour les tests unitaires, les tests ordonnés sont exactement ce que vous ne voulez pas. Toutefois, dans certains cas de tests d'intégration et de tests de régression dans lesquels vous effectuez des tests de bout en bout automatisés d'un système, vous pouvez le souhaiter. Par exemple, les données de test d'application sont souvent coûteuses à préparer et vous pouvez décider que certains effets secondaires limités entre les tests sont corrects, mais doivent être au moins cohérents entre les tests.

+1

Votre première déclaration est en quelque sorte ce que je pensais. Cependant, dans un environnement de construction automatisé où le passage de test unitaire est critique pour une construction réussie, j'imagine que ces sortes de tests n'ont pas leur place. –

+0

Oui. Les tests unitaires appropriés doivent être rapides et tester un petit morceau de code de production isolément. Rapide car votre build CI doit être rapide, même avec plusieurs milliers de tests. Vos tests unitaires devraient dépendre de très peu = faible couplage/fan-out. Lorsque le code de production change, peu de tests sont impactés. Ils doivent également être indépendants, de sorte qu'ils n'ajoutent pas de poids de maintenance à mesure que le système évolue = atomicité du test (=> agilité). La meilleure façon d'atteindre l'atomicité est que chaque méthode de test elle-même configure tout ce dont elle dépend, ce qui nécessite un haut niveau de découplage et des types bien conçus. – Mahol25

Questions connexes