Files
fn_registry/bash/functions/pipelines/run_kotlin_app_tests.md
T

3.1 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, tested, tests, test_file_path, file_path, params, output
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports tested tests test_file_path file_path params output
run_kotlin_app_tests pipeline bash pipelines 1.0.0 impure run_kotlin_app_tests(project_dir: string, avd_name?: string, --skip-emulator?, --no-stop?) -> int Pipeline e2e completo de testing app Kotlin: unit JVM + screenshot Roborazzi + build APK + instrumented Compose en emulador.
android
kotlin
compose
test
e2e
launcher
gradle_unit_test_bash_infra
gradle_screenshot_test_bash_infra
gradle_assemble_debug_bash_infra
gradle_instrumented_test_bash_infra
android_emulator_list_bash_infra
android_emulator_start_bash_infra
android_emulator_stop_bash_infra
adb_wsl_bash_infra
false error_go_core
false
bash/functions/pipelines/run_kotlin_app_tests.sh
name desc
project_dir Raiz del proyecto Android. Debe contener gradlew. Puede ser relativo al cwd o absoluto.
name desc
avd_name AVD para instrumented tests. Default: Medium_Phone_API_35. Debe existir en la lista de AVDs del sistema. Ignorado si se pasa --skip-emulator.
name desc
--skip-emulator Saltar instrumented tests. El pipeline solo ejecuta unit tests, screenshot tests y build APK, luego sale con exit 0.
name desc
--no-stop No parar el emulador al finalizar los instrumented tests. Util en desarrollo iterativo para no esperar el arranque en la siguiente ejecucion.
Stdout con tabla resumen de cada step (nombre, OK/FAIL/SKIP, tiempo). Exit 0 = todos los tests pasan. Exit codes: 1=unit tests fallaron, 2=screenshot tests fallaron, 3=build APK fallado, 4=emulador no encontrado o no arranca, 5=instrumented tests fallaron.

Ejemplo

# Suite completa con AVD por defecto
bash bash/functions/pipelines/run_kotlin_app_tests.sh apps/my_kotlin_app

# Suite completa con AVD especifico
bash bash/functions/pipelines/run_kotlin_app_tests.sh apps/my_kotlin_app Pixel_7_API_34

# Solo tests JVM (unit + screenshot + build), sin emulador
bash bash/functions/pipelines/run_kotlin_app_tests.sh apps/my_kotlin_app --skip-emulator

# Suite completa, dejar emulador corriendo al final
bash bash/functions/pipelines/run_kotlin_app_tests.sh apps/my_kotlin_app Medium_Phone_API_35 --no-stop

# Desde el launcher (fn run)
fn run run_kotlin_app_tests apps/my_kotlin_app

Notas

  • Fail-fast: si un paso falla, el pipeline imprime el resumen parcial y sale con el exit code del paso fallido. No continua al siguiente.
  • El orden de los flags tras project_dir es libre: avd_name es el primer argumento no-flag; --skip-emulator y --no-stop pueden aparecer en cualquier posicion.
  • El arranque del emulador usa android_emulator_start que es idempotente: si ya hay un emulador corriendo con ese AVD, no lanza otro.
  • adb_wsl se sourcea para resolver $ADB apuntando a adb.exe en Windows desde WSL2.
  • El paso emulator_stop se registra como SKIP en la tabla resumen cuando se pasa --no-stop.
  • Requiere WSL2 + Android SDK instalado en Windows. ANDROID_HOME o ~/android-sdk/env.sh deben estar disponibles.