2010-05-21 7 views
5

Je voudrais effectuer un test de régression des procédures stockées t-sql. Mon idée est de spécifier pour chaque SP plusieurs jeux de paramètres d'entrée. Le SP doit être exécuté avec ces paramètres, les résultats doivent être écrits sur le disque. La prochaine fois, les nouveaux résultats devraient être comparés aux résultats stockés avant.Tests de régression pour les procédures stockées T-SQL

Est-ce que quelqu'un connaît un bon outil pour quelque chose comme ça? Cela ne devrait pas être si difficile à mettre en œuvre, mais en pratique, vous aurez besoin de fonctionnalités telles que "ignore this column" ou quelque chose comme ça. Et je suppose qu'un tel outil devrait déjà exister !?

acclamations, Achim

+0

Fournir uniquement des entrées et des sorties attendues ressemble plus à des fonctions de test. Les procédures stockées peuvent utiliser des données autres que les paramètres d'entrée et peuvent avoir des effets secondaires, tels que l'écriture de données dans une table. Vous devrez donc définir la phase de votre test en remplissant les tables appropriées et en sauvegardant les effets secondaires. résultat. – mdma

Répondre

5

J'utiliseraient une suite de test unitaire comme DbUnit. DbUnit va configurer votre base de données, exécuter la procédure stockée, puis vérifier le résultat et éventuellement restaurer la base de données prête pour le test suivant. Il représente les données d'entrée et les résultats attendus sous forme de fichiers XML, que vous pouvez désassembler à partir des données et du schéma déjà présents dans la base de données. Pour le test de régression, utilisez l'unité db pour exécuter une fois les procédures stockées testées et collectez la sortie (sans la valider). Ceci définit votre ligne de base sur laquelle vous exécutez les tests de régression suivants. DbUnit a une belle abstraction pour les données tabulaires, qui peuvent être extraites de fichiers CVS, de fichiers XML ou d'objets de base de données.

Les entrées de test et les résultats attendus sont faciles à différencier et à stocker dans le contrôle de version, car ils sont stockés en XML. Comme mentionné, vous pouvez également charger et enregistrer des données à partir de fichiers CSV. DbUnit est un excellent outil pour tester la fonction de base de données, le project page, et le FAQ sont de bonnes ressources pour commencer.

+0

Semble bien, mais semble être un outil Java. Quelqu'un connaît-il un outil similaire pour .Net? – Achim

+0

Désolé, vous n'avez pas mentionné de langue dans votre question. Pour .NET, il existe NDbUnit - http://code.google.com/p/ndbunit/. La page du projet mentionne qu'elle emprunte beaucoup d'idées de DbUnit, donc ça devrait être un bon match. – mdma

+0

Je suis juste tombé sur ce - TSQLUnit - http://sourceforge.net/apps/trac/tsqlunit/ – mdma