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.
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