2012-03-29 6 views
4

Nous utilisons NUnit pour effectuer nos tests d'intégration. Un des tests devrait toujours faire la même chose, mais prendre des paramètres d'entrée différents. Malheureusement, nous ne pouvons pas utiliser l'attribut [TestCase], car nos cas de test sont stockés dans un stockage externe. Nous avons des cas de test dynamiques qui pourraient être ajoutés, supprimés ou désactivés (non supprimés) par nos ingénieurs QA. Les personnes chargées de l'assurance qualité n'ont pas la possibilité d'ajouter des attributs [TestCase] ​​dans notre code C#. Tout ce qu'ils peuvent faire est de les ajouter dans le stockage.Cas de test dynamiques

Mon but est de lire les cas de test depuis le stockage en mémoire, d'exécuter le test avec tous les cas de test activés, de signaler si un cas de test a échoué. Je ne peux pas utiliser l'instruction "foreach" car si le cas de test n ° 1 échoue, le reste des cas de test ne sera pas exécuté du tout. Nous avons déjà un serveur de construction (CruiseControl.net) où les rapports NUnit générés sont affichés, donc je voudrais continuer à utiliser NUnit.

Pourriez-vous indiquer comment atteindre mon objectif? Merci.

+1

double possible de [créer Dynamiquement tests en NUnit] (http://stackoverflow.com/questions/ 866816/dynamically-create-tests-in-nunit) – dasblinkenlight

Répondre

6

Vous pouvez utiliser [TestCaseSource("PropertyName")\] qui spécifie une propriété (ou une méthode, etc.) à partir de laquelle charger des données.

Par exemple, j'ai un test case in Noda Time qui utilise tous les fuseaux horaires BCL - et cela peut changer avec le temps, bien sûr (et est différent sur Mono), sans que je change du tout le code.

Faites en sorte que votre propriété/membre charge les données de test dans une collection, et vous êtes absent.

(j'arrive d'avoir des propriétés toujours utilisées, mais il semble que cela devrait fonctionner correctement avec des méthodes aussi.)