Compartir por


Preparación de pruebas XCUITest para la carga

Importante

Visual Studio App Center está programado para su retirada 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 de soporte técnico y las alternativas.

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

Limitaciones del servicio de prueba

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

Compilación para pruebas

Para ejecutar una prueba en App Center, debe compilar la aplicación y un lote 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 un .xcworkspace, use -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 lote 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 ejecución 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 pruebas 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 Activitiesprueba mediante el . 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 en una Activity captura de pantalla mediante XCUIScreen y, a continuación , crear un archivo adjunto con XCTAttachment y agregarlo al objeto actual Activity. Esta captura de pantalla se mostrará en Informes de pruebas de App Center en lugar de 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)