Ejecuta una XCTest

En esta guía, se describe cómo preparar una XCTest para realizar pruebas en Firebase Test Lab.

Paso 1: Configura la ubicación de los datos derivados de tu proyecto

Xcode ubica los artefactos compilados de iOS, incluidas las pruebas que crees, en un directorio de datos derivados. Es posible conservar la ubicación predeterminada de ese directorio, pero resulta útil seleccionar una ubicación que tenga un acceso más sencillo para los archivos, en especial si vas a ejecutar frecuentemente pruebas con Test Lab:

  1. Abre tu proyecto en Xcode.
  2. En la barra de menú macOS, selecciona File > Project Settings…
  3. Cambia el menú desplegable Derived Data de Default Location a Custom Location.
  4. En el campo que se encuentra bajo el menú desplegable, selecciona una ubicación donde Xcode pueda guardar los resultados de las pruebas (esta es tu FOLDER_WITH_TEST_OUTPUT).

Paso 2: Compila un archivo de prueba genérico

Test Lab ejecuta pruebas de unidades y de IU con el framework XCTest. Para ejecutar las XCTests de tus apps en dispositivos de Test Lab, créalas para pruebas en un dispositivo iOS genérico:

  1. En el menú desplegable del dispositivo que aparece en la ventana superior del lugar de trabajo de Xcode, selecciona Generic iOS Device.
  2. En la barra de menú de macOS, selecciona Product > Build For > Testing.

Como alternativa, puedes compilar tu XCTest desde la línea de comandos. Usa el siguiente comando en una terminal:

proyecto

xcodebuild -project PATH/TO/YOUR_WORKSPACE/YOUR_PROJECT.xcodeproj \
   -scheme YOUR_SCHEME \
   -derivedDataPath FOLDER_WITH_TEST_OUTPUT \
   -sdk iphoneos build-for-testing

lugar de trabajo

xcodebuild -workspace PATH/TO/YOUR_WORKSPACE.xcworkspace \
   -scheme YOUR_SCHEME \
   -derivedDataPath FOLDER_WITH_TEST_OUTPUT \
   -sdk iphoneos build-for-testing

Paso 3: Firma la prueba y realiza la verificación

  1. Asegúrate de que todos los artefactos de la app y la prueba estén firmados. Por ejemplo, puedes hacerlo mediante Xcode. Para ello, especifica la configuración de firma, como la identidad y el perfil de aprovisionamiento. Para obtener más información, consulta Firma de código de Apple.

  2. Para verificar la firma de la app, ejecuta codesign --verify --deep --verbose /path/to/MyApp.app, en el que “MyApp” es el nombre de la app dentro de la carpeta descomprimida. Esto varía según el proyecto. El resultado esperado es MyApp.app: valid on disk.

  3. Si ejecutas una XCUITest, debes verificar la prueba y el ejecutor mediante la ejecución de codesign --verify --deep --verbose /path/to/MyTest-Runner.app, en el que “MyTest” es el nombre del ejecutor dentro de la carpeta descomprimida. Esto varía según el proyecto. El resultado esperado es MyTest-Runner.app: valid on disk.

Paso 4: Empaqueta tu app y realiza la prueba para subirla

  1. Después de crear la prueba con éxito, puedes comprimirla y subirla a Test Lab:

    cd FOLDER_WITH_TEST_OUTPUT/Build/Products : \
    zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
    

También puedes empaquetar tu prueba comprimiendo los archivos de prueba de forma manual como se indica a continuación:

  1. Abre Finder y navega hasta FOLDER_WITH_TEST_OUTPUT.

  2. Abre la carpeta que tiene el nombre de tu proyecto como prefijo y, luego, navega a la carpeta Build/Products.

  3. Selecciona las carpetas Debug-iphoneos y YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun y, luego, comprímelas.

Paso 5: Ejecuta la prueba de forma local (opcional)

Antes de ejecutar tu prueba con Test Lab, puedes ejecutarla de manera local con un dispositivo conectado por USB para verificar su comportamiento:

xcodebuild test-without-building \
    -xctestrun "Derived Data/Build/Products/YOUR_SCHEME.xctestrun" \
    -destination id=your-phone-id

Próximos pasos

Sube tu prueba y ejecútala en Firebase console o en gcloud CLI.