Compartir a través de


Solución de problemas de pruebas unitarias orientadas a datos

Actualización: noviembre 2007

Pueden surgir problemas de conexión, autenticación, distribución o de otro tipo al ejecutar pruebas unitarias orientadas a datos. Utilice la información de las secciones siguientes para resolver estos problemas.

La prueba no se puede conectar al origen de datos

Asegúrese de que la cuenta de usuario utilizada para ejecutar pruebas puede tener acceso al origen de datos. Para ello, debe saber qué cuenta de usuario se va a utilizar para ejecutar las pruebas. Por ejemplo, si ejecuta las pruebas de forma remota, éstas se ejecutan desde la cuenta de usuario del agente.

Problemas de ASP.NET

Las pruebas de ASP.NET que se ejecutan en un servidor Web de IIS se ejecutan desde la cuenta 'aspnet'. Por tanto, asegúrese de que el usuario de ASP.NET puede tener acceso a ese origen de datos.

Además, si utiliza el 'DSN de ODBC de Excel, debe crear el 'DNS de sistema'. El DNS de sistema está disponible para todos los usuarios. Para crear los DSN, utilice el Administrador de origen de datos ODBC. Para ello, haga clic en Inicio, abra el Panel de control, abra Herramientas administrativas y, a continuación, abra Orígenes de datos.

Implementar archivos de origen de datos

Si utiliza un archivo de origen de datos como una hoja de cálculo de Microsoft Excel o un archivo .CSV, asegúrese de que está disponible cuando ejecute la prueba. Para ello, se puede agregar el archivo de origen de datos como elemento de implementación mediante el cuadro de diálogo de configuración de ejecución de prueba, o como un elemento de implementación para cada prueba. Especifique también una ruta de acceso relativa al archivo. Para obtener más información sobre las configuraciones de ejecución de prueba, vea Configurar la ejecución de pruebas.

Problemas de autenticación

Utilice la Autenticación de Windows siempre que sea posible.

Cadenas de conexión

Aunque el cuadro de diálogo Conexión de datos funciona correctamente para las conexiones con Microsoft SQL Server y Oracle, no debe utilizarse cuando haya que establecer una conexión con orígenes de datos de archivo. Para esos orígenes, puede especificar una cadena de conexión y, a continuación, seleccionar un nombre de tabla de datos en un cuadro de lista desplegable de la ventana Propiedades.

La tabla siguiente contiene ejemplos de nombres de proveedores y cadenas de conexión para la mayoría de los proveedores de datos.

Origen de datos

Nombre del proveedor

Cadena de conexión

MS SQL Server (proveedor de .NET)

System.Data.SqlClient

Data Source=NombreServidorSql;InitialCatalog=NombreBaseDeDatos;Integrated Security=True;Connect Timeout=30;User Instance=True

MS SQL Express Server (proveedor de .NET)

System.Data.SqlClient

Data Source=.\SQLEXPRESS;AttachDbFilename=C:\ \Test.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True

MS SQL Server (OLEDB, proveedor de MDAC)

System.Data.OleDb

Provider=SQLOLEDB;Data Source= NombreServidorSql;Integrated Security=SSPI;Initial Catalog=NombreBaseDeDatos

MS SQL Server (OLEDB, proveedor de cliente nativo)

System.Data.OleDb

Provider=SQLNCLI;Data Source= NombreEquipoServidorSql;Integrated Security=SSPI;Initial Catalog= NombreBaseDeDatos

MS SQL (ODBC)

System.Data.Odbc

Driver={SQL Server};Server=NombreServidorSql;Database=NombreBaseDeDatos;Trusted_Connection=yes

Driver={SQL Server};Server=NombreServidorSql;Database=NombreBaseDeDatos;Uid=NombreUsuario;Pwd=<contraseña>

Oracle (proveedor de .NET)

System.Data.OracleClient

Data Source=NombreServidorOracle;Persist Security Info=True;User ID=scott;Password=<contraseña>;Unicode=True

Oracle (OLEDB, proveedor de Oracle)

System.Data.OleDb

Provider=OraOLEDB.Oracle;Data Source=NombreServidorOracle;Persist Security Info=True;OSAuthent=1

Provider=OraOLEDB.Oracle;Data Source=NombreServidorOracle;Persist Security Info=True;User ID=scott;Password=<contraseña>

Oracle (OLEDB, proveedor de Microsoft)

System.Data.OleDb

Provider=MSDAORA;Data Source= NombreServidorOracle;Persist Security Info=True; User ID=scott;Password=<contraseña>

Oracle (ODBC)

System.Data.Odbc

Driver={Microsoft ODBC para Oracle};Server=NombreServidorOracle;Uid=scott;Pwd=<contraseña>

Excel (OLEDB)

System.Data.OleDb

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\ Test.xls;Persist Security Info=False;Extended Properties="Excel 8.0"

Excel (ODBC, controlador de MS Excel)

System.Data.Odbc

Driver={Controlador de Microsoft Excel (*.xls)};DriverId=790;Dbq=C:\\Test.xls;DefaultDir=C:\

Sugerencia   Para la tabla Hoja1 utilice Hoja1 $ como nombre de tabla de datos.

Excel (ODBC, Dsn)

System.Data.Odbc

Dsn=Archivos de Excel;dbq=C:\Test.xls;defaultdir=C:\;driverid=790;maxbuffersize=2048;pagetimeout=5

Sugerencia    Cuando ejecute las pruebas en ASP.NET, considere la posibilidad de usar el DNS de sistema en lugar del DSN de usuario.

CSV/archivo de texto (OLEDB)

System.Data.OleDb

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\;Extended Properties="text;HDR=Yes;FMT=Delimited”

Sugerencia    Para el archivo test.csv, utilice test#csv como nombre de tabla.

Nota   HDR=Yes indica que la primera fila contiene nombres de columna y no datos reales.

CSV/archivo de texto (ODBC)

System.Data.Obdc

Driver={Controlador de texto de Microsoft (*.txt; *.csv)};Dbq=c:\;Extensions=asc,csv,tab,txt

ODBC mediante Dsn

System.Data.Obdc

Dsn=MiDsn;Uid=NombreUsuario;Pwd=<contraseña>

FILEDSN=C:\MiDsn.dsn;Uid=NombreUsuario;Pwd=<contraseña>

Especificar un origen de datos independientemente del código compilado

Puede utilizar el archivo App.config para especificar un origen de datos para la prueba. De esta forma, podrá cambiar los atributos del origen de datos, como el servidor, el nombre de tabla, etc., sin volver a compilar el ensamblado de pruebas. Cuando ejecute la prueba desde la línea de comandos, asegúrese de que el archivo App.config está en el mismo directorio que el ensamblado de pruebas.

Ejemplo:

[TestMethod][DataSource("MyDataSource")]

[DeploymentItem("MyDataSource.csv")]public void MyTest() {}

Contenido del archivo App.config:

<configSections><section name="microsoft.visualstudio.qualitytools" type="Microsoft.VisualStudio.QualityTools.UnitTesting.Framework.TestConfigurationSection, Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/></configSections><microsoft.visualstudio.qualitytools><dataSources><add name="MyDataSource" connectionString="MyConnectionString" dataTableName="ChildSearchCriteria" dataAccessMethod="Sequential" /></dataSources></microsoft.visualstudio.qualitytools>

Nota:

La propiedad Run unit tests in application domain determina si cada ensamblado de pruebas unitarias se ejecuta en un dominio de aplicación distinto. El valor predeterminado de esta propiedad es True. Si las pruebas unitarias no requieren un dominio de aplicación diferente o un archivo app.config para que funcionen correctamente, se ejecutarán de forma más rápida si establece el valor de esta propiedad en False.

Después de inicializar la base de datos en TestInitialize, los cambios no aparecen

Cuando se ejecuta la prueba orientada a datos, el adaptador de prueba unitaria se conecta a la tabla de datos y crea una lista de filas de datos. A continuación, ejecuta para cada fila los métodos TestInitialize, TestMethod y TestCleanup. Si cambia las filas de datos en TestInitialize, el adaptador de prueba unitaria no detectará el cambio. Por tanto, si desea cambiar la tabla de datos de una prueba orientada a datos, utilice el método ClassInitialize o AssemblyInitialize.

La prueba unitaria se realiza correctamente, pero no contiene resultados internos

Esto indica que la tabla de datos no contiene ninguna fila.

Otros problemas

Si su problema no figura en esta lista, puede utilizar los foros de soporte técnico y los foros individuales de Visual Studio Team para Developers y Visual Studio Team System Test para buscar respuestas o plantear preguntas.

Vea también

Tareas

Cómo: Configurar una prueba unitaria orientada a datos

Conceptos

Codificar una prueba unitaria orientada a datos