c# - para - convertir archivo csv a excel
Cómo ejecutar una prueba muchas veces con datos leídos del archivo.csv(manejo de datos) (3)
Estoy intentando automatizar algunas pruebas para una de nuestras aplicaciones web y necesito saber cómo puedo hacer que mi proyecto de interfaz de usuario codificado lea datos de un archivo CSV. Digamos que quiero probar una pantalla de inicio de sesión. Mi archivo CSV contendrá algunos nombres de usuario y contraseñas. Quiero que mi prueba de interfaz de usuario codificada lea estos detalles de registro y los repita para ejecutar la prueba en cada conjunto de datos.
Añada el atributo Fuente de datos en la Prueba de interfaz de usuario codificada.
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|//data.csv", "data#csv", DataAccessMethod.Sequential), DeploymentItem("data.csv"), TestMethod]
Espero que este enlace pueda ayudarte: http://blogs.msdn.com/b/mathew_aniyan/archive/2009/03/17/data-driving-coded-ui-tests.aspx
No es necesario entrar en la vista de prueba. Simplemente reemplace su [TestMethod] con el siguiente script:
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|//LoginInfo.csv", "Sheet$1", DataAccessMethod.Sequential), DeploymentItem("LoginInfo.csv"), TestMethod]
A partir de ahí, cambie el archivo LoginInfo.csv al nombre de su archivo .csv. Para referenciar sus datos solo use:
// Username and Password are Column Headers
UIMap.LoginParams.UserNameTextBox = TestContext.DataRow["UserName"].ToString();
UIMap.LoginParams.PasswordTextBox = TestContext.DataRow["Password"].ToString();
UIMap.Login();
Esto tomará el artículo en cada columna y lo usará secuencialmente en cada prueba.
La web tiene muchos tutoriales sobre datos que conducen pruebas de interfaz de usuario codificadas. Los pasos básicos para la conducción de datos con un archivo CSV son los siguientes.
- Crea el archivo CSV.
- Agregue el archivo CSV al proyecto.
- Asegúrese de que el archivo CSV esté desplegado.
- Agregue el archivo CSV como fuente de datos para una prueba individual.
- Lea los campos CSV y úselos en la prueba.
Los pasos detallados, con algunas variaciones, se explican a continuación.
Visual Studio 2010 tiene un "asistente de origen de datos" que realiza algunos de estos pasos. Las versiones de Visual Studio 2012 y 2013 no tienen el asistente, por lo que todos los pasos deben realizarse manualmente.
Crea el archivo CSV
Una forma es crear el archivo en una hoja de cálculo y guardarlo como valores separados por comas. Otra forma es usar un editor de texto y simplemente escribir el archivo. Utilizo un programa de hoja de cálculo para archivos fuente de big data y un editor de texto para crear archivos pequeños. Algunos editores añaden una marca de orden de bytes (BOM) al comienzo de un archivo, que se agregará al primer nombre de campo del CSV que parece hacer que el campo sea ilegible. Consulte esta página para obtener más información sobre la lista de materiales.
Agregue el archivo CSV al proyecto
Use el menú contextual en el explorador de soluciones, seleccione Agregar -> Artículo existente . Luego busque el archivo requerido. Tenga en cuenta que el filtro de archivos probablemente deba modificarse para que sea *.*
O *.csv
.
Asegúrate de que el archivo CSV esté desplegado
Abra el panel de propiedades para el archivo CSV desde el explorador de soluciones. Establezca " Copiar en el directorio de salida " en " Copiar si es más nuevo " o en " Copiar siempre ". Algunos documentos recomiendan " Copiar si es más reciente ", pero prefiero " Copiar siempre ", ya que ocasionalmente un archivo no se copió como esperaba. La diferencia entre los dos métodos de copia es un poco de espacio en disco y un poco de tiempo, pero los discos normalmente son grandes y el tiempo para copiar es normalmente pequeño. Cualquier ahorro es, en mi opinión, superado por la seguridad de que el archivo se copiará correctamente.
Agregue el archivo CSV como fuente de datos para una prueba individual
Reemplace el atributo [TestMethod]
con la línea de fuente de datos correcta. Este blog de Microsoft muestra el código de reemplazo para varios tipos de archivos de fuentes de datos posibles. Para el uso de CSV:
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV",
"|DataDirectory|//data.csv", "data#csv",
DataAccessMethod.Sequential), DeploymentItem("data.csv"),
TestMethod]
Tenga en cuenta que el nombre del archivo aparece tres veces y una copia tiene un #
lugar de a .
. No he encontrado ninguna documentación útil sobre los diferentes campos del atributo Datasource(...)
así que no puedo aconsejar más sobre cómo elegir valores para fuentes de datos que no sean CSV.
The |DataDirectory|
la parte anterior se reemplaza por el directorio donde se implementan los archivos cuando se ejecutan las pruebas. El nombre completo del archivo dentro de las comillas de cadena podría reemplazarse por un nombre de ruta completo de un archivo, si es necesario.
Lee los campos CSV y úsalos en la prueba
La herramienta de registro y generación de UI codificada crea clases con campos que contienen valores ingresados en cuadros de texto o utilizados en afirmaciones. Cada método de acción tiene una ...Params
Clase de ...Params
y cada método assert tiene una ...ExpectedValues
Clase de ...ExpectedValues
, donde el ...
es el nombre del método. Los valores predeterminados de estos campos son los valores utilizados cuando se registró la prueba. Los valores grabados pueden sobrescribirse por una asignación antes de llamar a la acción o al método de aserción. Se accede a los campos de la fila actual de la fuente de datos desde TestContext.DataRow[...]
.
Supongamos que una prueba de UI codificada tiene un método EnterValue
que escribe texto en dos campos de la pantalla y también tiene un método CheckResult
que afirma un campo. El método de prueba podría escribirse de la siguiente manera.
[DataSource...
TestMethod]
public void CodedUITestMethod1()
{
this.UIMap.EnterValueParams.UIItem0TextSendKeys = TestContext.DataRow["ValueOne"].ToString();
this.UIMap.EnterValueParams.UIItem1TextSendKeys = TestContext.DataRow["ValueTwo"].ToString();
this.UIMap.EnterValue();
this.UIMap.CheckResultExpectedValues.UIItem0TextDisplayText = TestContext.DataRow["Result"].ToString();
this.UIMap.CheckResult();
}
Las clases ...Params
y ...ExpectedValues
permiten que la prueba cree valores cuando se ejecuta la prueba. Por ejemplo, si el método EnterValue
también quería escribir la fecha de mañana en un campo, podríamos agregar la siguiente línea antes de que se llame:
this.UIMap.EnterValueParams.UIItem2TextSendKeys = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd");