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:
projeto
xcodebuild -project PATH/TO/YOUR_WORKSPACE/YOUR_PROJECT.xcodeproj \ -scheme YOUR_SCHEME \ -derivedDataPath FOLDER_WITH_TEST_OUTPUT \ -sdk iphoneos build-for-testing
espaço de trabalho
xcodebuild -workspace PATH/TO/YOUR_WORKSPACE.xcworkspace \ -scheme YOUR_SCHEME \ -derivedDataPath FOLDER_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-iphoneos YOUR_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
eYOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
e compacte-as.
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.