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