CI: add Android JVM unit test execution to PR workflow

Abierto Apto para principiantes
#7,247 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
65/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
android, github-actions, kotlin
Área
ci-cd, mobile, testing

Línea de trabajo

Empieza leyendo .github/workflows/build-pr.yml y .github/workflows/eslint.yml para seguir las comprobaciones de PR existentes y el encadenamiento de los workflows de Android. Añade la ejecución de ./gradlew :app:testDebugUnitTest en la disposición seleccionada de workflows de PR y, después, verifica que las pruebas JVM de Android se ejecuten y que una prueba fallida haga que el workflow falle.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

✅ tests 👷 ci type: feature

Problem

The PR CI workflow (.github/workflows/build-pr.yml → .github/workflows/eslint.yml) runs yarn lint and yarn test --runInBand (Jest), then chains the Android/iOS build workflows.

It does not execute Android JVM unit tests (./gradlew :app:testDebugUnitTest). The build-android workflow runs assembleRelease, which catches compile errors but doesn't execute the test sources under android/app/src/test/.

This means tests like MediaCallsAnswerRequestTest.kt (added in https://github.com/RocketChat/Rocket.Chat.ReactNative/pull/7245), DDPClientTest.kt, MediaCallsRegistryTest.kt, etc. only run when a developer remembers to invoke them locally.

Suggested fix

Add a ./gradlew :app:testDebugUnitTest step to the PR workflow — either:

  1. As a new step in eslint.yml after the Jest run, or
  2. As a separate android-unit-tests.yml workflow gated on pull_request.

Option 2 keeps the JS+TS lint/test job lean and lets Android JVM tests run in parallel.

Why now

The release-readiness queue added several Android JVM test classes (#7245 has 276 lines of MockWebServer coverage). Without CI execution, regressions in the timeout / dedupe / dispatch logic land silently. Filing as a follow-up so the test suite gets actual gating value.

Lenguaje dominante
TypeScript
Estrellas
2.4k
Forks
1.5k
Merge medio
1 d 15 h
PR fusionados (30 d)
29

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de RocketChat/Rocket.Chat.ReactNative

Todos los issues de RocketChat/Rocket.Chat.ReactNative

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.