Compartir a través de


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: Crear pruebas unitarias de base de datos para funciones, desencadenadores y procedimientos almacenados

Cómo: Configurar la ejecución de las pruebas unitarias de base de datos

Conceptos

Introducción a la terminología de Database Edition