Preparando testes XCUITest para upload

Importante

O Visual Studio App Center está programado para ser desativado em 31 de março de 2025. Embora você possa continuar a usar o Visual Studio App Center até que ele seja totalmente desativado, há várias alternativas recomendadas para as quais você pode considerar migrar.

Saiba mais sobre linhas do tempo e alternativas de suporte.

Este guia fornece instruções para preparar testes XCUITest para upload no Teste do App Center.

Requisitos do serviço de teste

  • Xcode >= 9.4.1
  • iOS >= 9,0

Observação

O Xcode 12 e o iOS 14 já estão disponíveis!

Testar limitações do serviço

  • Somente o aplicativo carregado pode ser testado, não interações por meio de aplicativos ou do restante do sistema.

Compilar para teste

Para executar um teste no App Center, você precisa criar seu aplicativo e um pacote XCUITest. Execute um dos dois comandos a seguir na raiz do diretório do projeto de aplicativo:

# 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 deve apontar para um .xcodeproj arquivo, provavelmente intitulado PROJECT_NAME.xcodeproj. Se você usar um .xcworkspace, use -workspace em vez de -project. YOUR_APP_SCHEME deve ser o esquema usado para criar seu aplicativo. Por padrão, geralmente é o nome do seu aplicativo.

O xcrun criará seu aplicativo e um pacote XCUITest no DerivedData/Build diretório . Seu aplicativo e o pacote XCUITest estarão localizados no DerivedData/Build/Products/Debug-iphoneos/ diretório .

xcrun xcodebuild -list

Carregando testes no App Center

Depois que um conjunto de testes for preparado, configure uma execução de teste para carregar e executar seus testes.

Aqui está um exemplo de como você pode carregar seu pacote XCUITest no Teste do App Center.

# 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 obter um exemplo concreto de envio de testes para o App Center, consulte este script de shell que envia testes para o App Center.

Capturas de tela adicionais e etapas de teste

No final de cada método de teste, uma captura de tela é feita automaticamente para o relatório de teste. Cada captura de tela é exibida no Relatório de Teste do App Center como uma Etapa de Teste separada.

Atividades

Você pode gerar rótulos e capturas de tela adicionais para um método de teste agrupando seu código de teste usando o da ActivitiesApple. Para obter mais informações, consulte Agrupando testes em subetapas com atividades.

Snippet de código para encapsular o código de teste em uma atividade

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

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

Capturas de tela manuais

Uma captura de tela é gerada automaticamente para o relatório de teste no final de cada Activity. Você pode gravar uma captura de tela em um ponto diferente dentro de um Activity, fazendo uma captura de tela usando XCUIScreen, criando um anexo com XCTAttachment e adicionando-o ao atual Activity. Esta captura de tela será exibida nos Relatórios de Teste do App Center em vez da captura de tela padrão do final do Activity.

Snippet de código para gerar e anexar uma captura de tela em uma atividade

         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)