Execute um XCTest

Este guia descreve como preparar um XCTest para teste no Firebase Test Lab.

Etapa 1 : configurar o local dos dados derivados do seu projeto

O Xcode coloca artefatos iOS compilados, incluindo quaisquer testes que você cria, em um diretório de Dados Derivados. É possível manter o local padrão para esse diretório, se desejar, mas geralmente é útil escolher um local mais facilmente acessível para os arquivos, especialmente se você executar testes com o Test Lab com frequência:

  1. Abra seu projeto no Xcode.
  2. Na barra de menus do macOS, selecione Arquivo > Configurações do projeto...
  3. Altere o menu suspenso Dados derivados de Local padrão para Local personalizado .
  4. No campo abaixo do menu suspenso, selecione um local para o Xcode enviar seus testes. (Este é o seu FOLDER_WITH_TEST_OUTPUT )

Etapa 2 : Crie um arquivo de teste genérico

O Test Lab executa testes de unidade e testes de UI usando a estrutura XCTest . Para executar os XCTests do seu aplicativo em dispositivos Test Lab, crie-o para teste em um dispositivo iOS genérico:

  1. No menu suspenso do dispositivo na parte superior da janela do espaço de trabalho do Xcode, selecione Dispositivo iOS genérico .
  2. Na barra de menus do macOS, selecione Produto > Construir para > Teste .

Como alternativa, você pode construir seu XCTest a partir da linha de comando. Use o seguinte comando em um terminal:

projeto

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

área de trabalho

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

Etapa 3 : assine seu teste e verifique

  1. Certifique-se de que todos os artefatos no aplicativo e no teste estejam assinados. Por exemplo, você pode fazer isso por meio do Xcode especificando configurações de assinatura, como perfil de provisionamento e identidade. Para obter mais informações, consulte Assinatura de código Apple .

  2. Verifique a assinatura do aplicativo executando codesign --verify --deep --verbose /path/to/MyApp.app onde "MyApp" é o nome do aplicativo dentro da pasta descompactada. Isso varia para cada projeto. A saída esperada é MyApp.app: valid on disk .

  3. Se você estiver executando um XCUITest, precisará verificar o teste e o executor executando codesign --verify --deep --verbose /path/to/MyTest-Runner.app onde "MyTest" é o nome do executor dentro do pasta descompactada. Isso varia para cada projeto. A saída esperada é MyTest-Runner.app: valid on disk .

Etapa 4 : empacotar seu aplicativo e testar o upload

  1. Depois que seu teste for compilado com sucesso, compacte-o para carregá-lo no Test Lab:

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

Você também pode empacotar seu teste compactando os arquivos de teste manualmente:

  1. Abra o Finder e navegue até FOLDER_WITH_TEST_OUTPUT .

  2. Abra a pasta que tem o nome do seu projeto como prefixo e navegue até a pasta Build/Products dentro dela.

  3. Selecione as pastas Debug-iphoneos e YOUR_SCHEME _iphoneos DEPLOYMENT_TARGET -arm64.xctestrun e compacte-as.

Etapa 5 : (opcional) execute seu teste localmente

Antes de executar seu teste com o Test Lab, você pode executá-lo localmente com um dispositivo conectado por USB para verificar a qualidade de seu comportamento:

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

Próximos passos

Faça upload e execute seu teste no console do Firebase ou na CLI gcloud .