2010-05-21 8 views
5

Me gustaría realizar pruebas de regresión de los procedimientos almacenados de t-sql. Mi idea es especificar para cada SP conjuntos de parámetros de entrada múltiple. El SP debe ejecutarse con estos parámetros, los resultados deben escribirse en el disco. La próxima vez los nuevos resultados se deben comparar con los resultados almacenados anteriormente.Pruebas de regresión para procedimientos almacenados de T-SQL

¿Alguien sabe una buena herramienta para algo como eso? No debería ser tan difícil de implementar, pero en la práctica necesitarás funciones como "ignorar esa columna" o algo así. Y supongo que tal herramienta ya debería existir?

aplausos, Achim

+0

Proporcionar solo entradas y salidas esperadas suena más como si estuviera probando funciones. Los procedimientos almacenados pueden usar datos que no sean los parámetros de entrada y pueden tener efectos colaterales, como escribir datos en una tabla, por lo que también deberá establecer el escenario para su prueba rellenando las tablas apropiadas y guardando los efectos secundarios como parte del proceso. resultado. – mdma

Respuesta

5

me gustaría utilizar un conjunto de pruebas de unidad como DbUnit. DbUnit configurará su base de datos, ejecutará el procedimiento almacenado y luego verificará el resultado, y opcionalmente retrotraerá la base de datos lista para la próxima prueba. Representa los datos de entrada y los resultados esperados como archivos XML, que puede aplicar ingeniería inversa a partir de los datos y el esquema que ya están en la base de datos.

Para la prueba de regresión, utiliza la unidad db para ejecutar los procedimientos almacenados bajo prueba una vez y recolectar la salida (sin validarla). Esto define su línea base con la que ejecutará las pruebas de regresión posteriores.

DbUnit tiene una buena abstracción para datos tabulares, que se pueden obtener de archivos CVS, archivos XML u objetos de base de datos.

Las entradas de prueba y los resultados esperados son fáciles de distinguir y almacenar en el control de la versión, ya que se almacenan como XML. Como se mencionó, también puede cargar y guardar datos de archivos CSV.

DbUnit es una gran herramienta para probar la función de la base de datos, el project page y el FAQ son buenos recursos para comenzar.

+0

Suena bien, pero parece ser una herramienta de Java. ¿Alguien sabe una herramienta similar para .Net? – Achim

+0

Disculpe, no mencionó un idioma en su pregunta. Para .NET existe NDbUnit - http://code.google.com/p/ndbunit/. La página del proyecto menciona que toma muchas ideas de DbUnit, por lo que debería ser una buena combinación. – mdma

+0

Me acabo de enterar de esto - TSQLUnit - http://sourceforge.net/apps/trac/tsqlunit/ – mdma

Cuestiones relacionadas