Primero, asegúrese de comprender el manejo de opciones en Tradefed.
La configuración de la suite describe las dos capas que existen en la estructura de la suite:
- La suite de primer nivel
- Los módulos
En un contexto Tradefed fuera de la suite, no hay necesidad de pensar en ello; cada opción va a la invocación completa. En un contexto de suite, los módulos se mantienen aislados de la suite; por lo que no todas las opciones están disponibles en su nivel.
Pasar opciones a la suite de nivel superior
La suite de nivel superior se comporta como una configuración Tradefed estándar: la configuración completa, incluido el ejecutor de la suite, recibe todas las opciones como una configuración Tradefed que no es una suite.
Pasar opciones a los módulos
Los módulos por defecto no reciben ninguna de las opciones pasadas al comando. Deben estar dirigidos explícitamente para recibir las opciones a través de la opción module-arg
. Este aislamiento de las opciones de los módulos facilita la depuración.
Ejemplo:
cts-tradefed run cts --module-arg <module-name>:<option-name>:<option-value>
cts-tradefed run cts --module-arg CtsGestureTestCases:collect-tests-only:true
La sintaxis asegura que el módulo de destino recibirá la opción dada.
Hay formas adicionales de pasar opciones a módulos como test-arg
, que le permite pasar opciones al ejecutor de pruebas de cada módulo según el tipo o la clase del corredor.
Ejemplo:
cts-tradefed run cts --test-arg <test-class>:<option-name>:<option-value>
cts-tradefed run cts --test-arg com.android.tradefed.testtype.JarHosttest:collect-tests-only:true
La sintaxis no apunta a un módulo en particular sino a todos los corredores de prueba de la clase dada. test-arg
considera solo las implementaciones de IRemoteTest como receptor potencial de las opciones.
Pasando la opción a una clase de prueba de Java en un java_test_host
Si está agregando una @Option
a su clase de prueba Java como parte de un objetivo de compilación java_test_host, deberá usar lo siguiente para inyectar esa opción:
cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>
set-option en este contexto es la opción del corredor HostTest del arnés de prueba que envuelve sus clases Java para ejecutarlas.
si el destino de su archivo jar para las opciones contiene varias clases de prueba, de forma predeterminada, se espera que todas tengan @option especificada o usen la siguiente sintaxis para apuntar a una sola clase:
cts-tradefed run cts --module-arg <module-name>:set-option:<class-name>:<option-name>:<option-value>
Pasar filtros a la suite
Para filtrar algunas pruebas de un conjunto, usamos --include-filter
y --exclude-filter
para forzar, respectivamente, la inclusión o exclusión de una prueba o módulo en particular. La exclusión tiene prioridad.
Usan este formato: [abi] <module-name> [test name]
Ejemplos:
--include-filter CtsGestureTestCases
--include-filter armeabi-v7a CtsGestureTestCases
--include-filter armeabi-v7a CtsGestureTestCases android.gesture.cts.GestureTest#testGetStrokes