Solución de problemas de pruebas unitarias de base de datos
Actualización: noviembre 2007
Los problemas descritos en este tema pueden surgir al realizar pruebas unitarias en una base de datos:
Permisos insuficientes al ejecutar pruebas unitarias o generar datos de prueba
Problemas al realizar pruebas unitarias en procedimientos almacenados numerados
Se omiten las pruebas unitarias y los cambios de App.Config al ejecutar pruebas unitarias
Implementación de la base de datos en un destino inesperado al ejecutar pruebas unitarias
Se agotan los tiempos de espera al ejecutar pruebas unitarias de base de datos
Permisos insuficientes al ejecutar pruebas unitarias o generar datos de prueba
Puede configurar una prueba unitaria para que implemente la base de datos y genere datos automáticamente. Si no tiene los permisos necesarios para generar datos para la base de datos de destino, se producirá un error que le indicará que no tiene los permisos necesarios para conectarse a la base de datos.
Nota: |
---|
Para solucionar este problema, ejecute manualmente el plan de generación de datos. Si no tiene los permisos necesarios para generar datos, este enfoque le proporcionará un mensaje de error más detallado que le ayudará a solucionar el problema. |
Problemas al realizar pruebas unitarias en procedimientos almacenados numerados
Si crea pruebas unitarias de base de datos para una base de datos que contiene procedimientos almacenados numerados (como MyProcedure;2), el cuadro de diálogo Crear pruebas unitarias no muestra la designación numérica. Este comportamiento puede hacer que aparezca varias veces el mismo número de procedimiento si tiene varias versiones numeradas de uno o más procedimientos almacenados.
Además, falta la designación numérica en el script que se genera para probar los procedimientos almacenados. Por ejemplo, si genera una prueba unitaria para un procedimiento denominado MyProcedure;2, el script se parecerá al siguiente:
EXEC @RC = [dbo].[MyProcedure]
Nota: |
---|
Para solucionar este problema, modifique el script generado para volver a agregar la designación numérica antes de ejecutar las pruebas unitarias. Si generó pruebas unitarias para varios procedimientos almacenados, tendrá que corregirlas todas. |
Se omiten las pruebas unitarias y los cambios de App.Config al ejecutar pruebas unitarias
Si modifica el archivo App.Config en el proyecto de prueba, debe volver a generar el proyecto de prueba para que los cambios surtan efecto. Estos cambios incluyen los realizados en App.Config mediante el cuadro de diálogo Configuración del proyecto. Si no vuelve a generar el proyecto de prueba, los cambios no se aplicarán hasta que ejecute las pruebas unitarias.
Implementación de la base de datos en un destino inesperado al ejecutar pruebas unitarias
Si implementa una base de datos al realizar pruebas unitarias, la base de datos se creará con la información de cadena de conexión especificada en la configuración de las pruebas unitarias. La información de conexión especificada en las propiedades de generación del proyecto de base de datos no se usa para esta tarea, por lo que puede ejecutar pruebas unitarias diferentes en distintas instancias de una misma base de datos.
Se agotan los tiempos de espera al ejecutar pruebas unitarias de base de datos
Se las pruebas unitarias de base de datos no se realizan correctamente al agotarse el tiempo de espera, puede incrementar el tiempo de espera actualizando el archivo app.config en su proyecto de base de datos. El tiempo de espera de la cadena de conexión especifica cuánto tiempo debe esperar la prueba unitaria para conectarse al servidor. El comando time-out especifica el tiempo que debe esperarse cuando la prueba unitaria ejecuta el script de Transact-SQL (T-SQL).
Nota: |
---|
Para evitar este problema, especifique un valor mayor para el atributo CommandTimeout en el elemento Context adecuado del archivo app.config de su proyecto de prueba. Por ejemplo, para especificar un comando time-out de 120 segundos para el elemento PrivilegedContext, actualice app.config tal y como se expone a continuación: |
<DatabaseUnitTesting>
<DatabaseDeployment DatabaseProjectFileName="test.dbproj" Configuration="Debug" />
<DataGeneration DataGenerationFileName="test.dgen" ClearDatabase="true" />
<ExecutionContext Provider="System.Data.SqlClient" ConnectionString="another connection string" />
<PrivilegedContext Provider="System.Data.SqlClient" ConnectionString="test" CommandTimeout=”120” />
</DatabaseUnitTesting>
Vea también
Tareas
Cómo: Configurar la ejecución de las pruebas unitarias de base de datos