Preparar pruebas XCUITest para la carga

Importante

Visual Studio App Center está programado para retirarse el 31 de marzo de 2025. Aunque puede seguir usando Visual Studio App Center hasta que se retire por completo, hay varias alternativas recomendadas a las que puede considerar la posibilidad de migrar.

Obtenga más información sobre las escalas de tiempo y las alternativas de soporte técnico.

En esta guía se proporcionan instrucciones para preparar las pruebas XCUITest para cargarlas en App Center Test.

Requisitos del servicio de prueba

  • Xcode >= 9.4.1
  • iOS >= 9.0

Nota

Xcode 12 e iOS 14 ya están disponibles.

Limitaciones del servicio de prueba

  • Solo se puede probar la aplicación cargada, no las interacciones a través de aplicaciones ni el resto del sistema.

Compilación para pruebas

Para ejecutar una prueba en App Center, debe compilar la aplicación y un paquete XCUITest. Ejecute uno de los dos comandos siguientes desde la raíz del directorio del proyecto de aplicación:

# How to build a xcodeproj
rm -rf DerivedData
xcrun xcodebuild build-for-testing \
  -configuration Debug \
  -project YOUR_XCODEPROJ \
  -sdk iphoneos \
  -scheme YOUR_APP_SCHEME \
  -derivedDataPath DerivedData

YOUR_XCODEPROJ debe apuntar a un .xcodeproj archivo, probablemente titulado PROJECT_NAME.xcodeproj. Si usa , .xcworkspaceuse -workspace en lugar de -project. YOUR_APP_SCHEME debe ser el esquema que se usa para compilar la aplicación. De forma predeterminada, suele ser el nombre de la aplicación.

El xcrun compilará la aplicación y un paquete XCUITest en el DerivedData/Build directorio . La aplicación y el lote XCUITest se ubicarán en el DerivedData/Build/Products/Debug-iphoneos/ directorio.

xcrun xcodebuild -list

Carga de pruebas en App Center

Una vez preparado un conjunto de pruebas, configure una serie de pruebas para cargar y ejecutar las pruebas.

Este es un ejemplo de cómo puede cargar el conjunto XCUITest en App Center Test.

# Upload your test to App Center
appcenter test run xcuitest \
  --app "APP_ID" \
  --devices "DEVICE_SET_ID" \
  --test-series "main" \
  --locale "en_US" \
  --build-dir DerivedData/Build/Products/Debug-iphoneos

Para obtener un ejemplo concreto de envío de pruebas a App Center, consulte este script de shell que envía pruebas a App Center.

Capturas de pantalla adicionales y pasos de prueba

Al final de cada método de prueba, se toma automáticamente una captura de pantalla para el informe de prueba. Cada captura de pantalla se muestra en el informe de prueba de App Center como un paso de prueba independiente.

Actividades

Puede generar etiquetas y capturas de pantalla adicionales para un método de prueba mediante la agrupación del código de prueba mediante el de ActivitiesApple. Para obtener más información, vea Agrupar pruebas en subpasos con actividades.

Fragmento de código para ajustar el código de prueba en una actividad

    [XCTContext
     runActivityNamed:title
     block:^(id<XCTActivity>  _Nonnull activity) {
         // test code
     }];

        XCTContext.runActivity(named: title) { (activity) in
            // test code
        }

Capturas de pantalla manuales

Se genera automáticamente una captura de pantalla para el informe de prueba al final de cada Activity. Puede grabar una captura de pantalla en un punto diferente dentro de un Activity control tomando una captura de pantalla mediante XCUIScreen, después creando un archivo adjunto con XCTAttachment y agregándolo al actual Activity. Esta captura de pantalla se mostrará en App Center Test Reports en lugar de en la captura de pantalla predeterminada del final de Activity.

Fragmento de código para generar y adjuntar una captura de pantalla en una actividad

         XCUIScreenshot *screenshot = [[XCUIScreen mainScreen] screenshot];
         XCTAttachment *attachment;
         attachment = [XCTAttachment attachmentWithScreenshot:screenshot];
         [attachment setLifetime:XCTAttachmentLifetimeKeepAlways];
         [activity addAttachment:attachment];
            let screenshot = XCUIScreen.main.screenshot()
            let attachment = XCTAttachment(screenshot: screenshot)
            attachment.lifetime = .keepAlways
            activity.add(attachment)