Este guia descreve como preparar um XCTest para testes em Firebase Test Lab.
Etapa 1: configurar o local dos dados derivados de seu projeto
O Xcode coloca os elementos do iOS compilados, incluindo todos os testes que você cria, em um diretório de dados derivados. É possível manter o local padrão para esse diretório, mas é útil escolher um local mais acessível para os arquivos, especialmente se você pensa em executar testes pelo Test Lab com frequência:
- Abra seu projeto no Xcode.
- Selecione File > Project Settings… na barra de menus do macOS.
- Altere o menu suspenso Derived Data de Default Location para Custom Location.
- No campo abaixo do menu suspenso, selecione um local onde o Xcode possa guardar os testes. Esta é sua pasta
FOLDER_WITH_TEST_OUTPUT .
Etapa 2: criar um arquivo de teste genérico
O Test Lab executa testes de unidade e de interface usando o framework de XCTest. Para executar os XCTests do seu app em dispositivos do Test Lab, crie-os para que sejam testados em um dispositivo iOS genérico:
- No menu suspenso do dispositivo, na parte de cima da janela do espaço de trabalho do Xcode, selecione Generic iOS Device.
- Na barra de menu do macOS, selecione Product > Build For > Testing.
Como alternativa, você pode criar o XCTest na linha de comando. Use o seguinte comando em um terminal:
xcodebuild -projectPATH/TO/YOUR_WORKSPACE /YOUR_PROJECT .xcodeproj \ -schemeYOUR_SCHEME \ -derivedDataPathFOLDER_WITH_TEST_OUTPUT \ -sdk iphoneos build-for-testing
xcodebuild -workspacePATH/TO/YOUR_WORKSPACE .xcworkspace \ -schemeYOUR_SCHEME \ -derivedDataPathFOLDER_WITH_TEST_OUTPUT \ -sdk iphoneos build-for-testing
Etapa 3: assinar o teste e verificar
Verifique se todos os artefatos no app e teste estão assinados. Por exemplo, é possível fazer isso pelo Xcode especificando configurações de assinatura, como provisionamento de perfil e identidade. Para mais informações, consulte Assinatura de código da Apple.
Verifique a assinatura do app executando
codesign --verify --deep --verbose /path/to/MyApp.app
, em que "MyApp" é o nome do app dentro da pasta descompactada. Isso varia de acordo com o projeto. A saída esperada éMyApp.app: valid on disk
.Se você estiver executando um XCUITest, será necessário verificar o teste e o executor executando
codesign --verify --deep --verbose /path/to/MyTest-Runner.app
, em que "MyTest" é o nome do executor dentro da pasta descompactada. Isso varia de acordo com o projeto. A saída esperada éMyTest-Runner.app: valid on disk
.
Etapa 4: criar um pacote do app e testar o upload
Depois de criar o teste, coloque em uma pasta zipada e faça upload para o Test Lab:
cd
FOLDER_WITH_TEST_OUTPUT /Build/Products : \ zip -r MyTests.zip Debug-iphoneosYOUR_SCHEME _iphoneosDEPLOYMENT_TARGET -arm64.xctestrun
Também é possível criar um pacote do teste compactando os arquivos de teste manualmente:
Abra o Finder e navegue até
.FOLDER_WITH_TEST_OUTPUT Abra a pasta que tem o nome do projeto como prefixo e navegue até a pasta
Build/Products
.Selecione as pastas
Debug-iphoneos
e
e compacte-as.YOUR_SCHEME _iphoneosDEPLOYMENT_TARGET -arm64.xctestrun
Etapa 5: executar o teste no local (opcional)
Antes de executar seu teste com o Test Lab, é possível executá-lo localmente com um dispositivo conectado via USB para verificar a qualidade do comportamento:
xcodebuild test-without-building \ -xctestrun "Derived Data/Build/Products/YOUR_SCHEME .xctestrun" \ -destination id=your-phone-id
Próximas etapas
Faça upload e execute o teste no Console do Firebase ou no gcloud CLI.