Ejecución de pruebas controladas por datos
Asegúrese de que sabe cómo crear pruebas controladas por datos y cómo ejecutar pruebas con TAEF antes de empezar con los consejos y trucos para ejecutar DataDrivenTests con TAEF. También puede ser útil refrescar la memoria sobre cómo funciona la consulta de selección con TAEF.
En esta sección se trata específicamente sobre la ejecución de pruebas controladas por datos basadas en tablas, pero el mismo principio básico se aplica también a las pruebas controladas por datos basadas en PICT y WMI.
Si solo desea ejecutar todas las pruebas, incluidas las pruebas controladas por datos, no hay ninguna diferencia respecto a cómo lo ejecutaría normalmente con TAEF. Veamos un ejemplo de cómo ejecutar nuestro CPP\DataDrivenExample y CSharp\DataDrivenExample juntos mediante TAEF. Recuerde que, de forma predeterminada, TAEF ejecuta pruebas fuera de proceso. Si desea ejecutarlas dentro del proceso, use el conmutador "/inproc".
TE.exe Examples\CPP.DataDriven.Example.dll Examples\CSharp.DataDriven.Example.dll
Eche un vistazo a los archivos xml y los archivos de encabezado que especifican los metadatos. Ejecute solo las pruebas datadriven que tienen priority=1 de la siguiente manera:
TE.exe Examples\*.Tests.dll /select:"@DataSource=* And @Priority=1"
Tenga en cuenta que los metadatos especificados en el nivel de fila del archivo xml invalidan los metadatos especificados en el nivel de creación TestMethod.
Exploremos un poco más la eficacia de la ejecución de pruebas controladas por con TAEF. Digamos que solo quiere reproducir la tercera fila de la función FirstTable(). Puede hacerlo mediante el índice de la fila, que será 2 (el índice comienza en 0):
TE.exe Examples\CPP.DataDriven.Example.dll /select:"@Name='*FirstTable*' and @Data:index=2"
Observe que el criterio de selección ahora tiene un nuevo espacio de nombres "@Data:", que se puede usar específicamente para las pruebas controladas por datos. Al ejecutar la prueba anterior, observará que en lugar de los "#index" habituales que se anexan a los nombres de prueba en caso de pruebas controladas por datos, tiene "#Black" anexado al nombre de la prueba, es decir, los metadatos especiales "Name" especificados para esta fila. Consulte Especificación de metadatos en el nivel de fila para obtener más información. A pesar de este nombre especial, todavía puede seleccionar con el nombre. La selección de índices puede ayudar mucho a seleccionar un intervalo de filas para un conjunto de datos realmente grande. Por ejemplo (hipotético, no en el ejemplo) si tiene pruebas controladas por datos con 100 filas (índice máximo = 99) y solo desea ejecutar filas con un índice mayor que 10 y menor que 20, ahora puede especificar esto fácilmente como:
TE.exe Examples\*.Tests.dll /select:"@Name='*MyDataDrivenTest*' and @Data:index > 10 and @Data:index < 20"
Muchas veces, querrá reproducir basándose en un valor de datos concreto y no tendrá que molestarse en encontrar su índice. En este caso, puede volver a usar el espacio de nombres "@Data:". Ahora supongamos que en el ejemplo nativo de pruebas de unidad (consulte Creación de pruebas controladas por datos), solo quiere ejecutar esos casos cuando "Theme" es "AeroBasic".
TE.exe Examples\CPP.DataDriven.Example.dll Examples\CSharp.DataDriven.Example.dll /select:"@Data:Theme='AeroBasic'"
Esto se mostrará en la consola de la siguiente manera:
StartGroup: WEX::TestExecution::Examples::DataDrivenTests::SecondTable#2 [Process: 3588; Thread: 4584]
I am in second table.
Theme supplied as AeroBasic
EndGroup: WEX::TestExecution::Examples::DataDrivenTests::SecondTable#2 [Passed]
Summary: Total=1, Passed=1, Failed=0, Blocked=0, Not Run=0, Skipped=0
También puede aprovechar /listproperties para las pruebas datadriven para ver los conjuntos de datos y los metadatos (combinación de metadatos especificados en el nivel de método de prueba y el nivel de fila) para la prueba controlada por datos. Por lo tanto,
TE.exe Examples\CSharp.DataDriven.Examples.dll /listproperties
enumerará todos los métodos (datadriven o no) junto con los metadatos y los valores de datos disponibles y especificados en varios niveles.
Eche un vistazo a Anulación de metadatos en el nivel de fila, Especificación de tipos de parámetros de matriz y Ejemplo sencillo controlado por datos, para ver tutoriales de ejemplo que proporcionan más información.