Questa guida descrive come preparare un XCTest per i test in Firebase Test Lab.
Passaggio 1: configura la posizione dei dati derivati del progetto
Xcode inserisce gli artefatti iOS compilati, inclusi eventuali test che crei, in una directory Data Derived. Se vuoi, puoi mantenere la posizione predefinita per la directory, ma spesso è utile scegliere un luogo più facilmente accessibile per i file, soprattutto se eseguirai spesso test con Test Lab:
- Apri il progetto in Xcode.
- Nella barra dei menu di macOS, seleziona File > Impostazioni progetto.
- Modifica il menu a discesa Dati derivati da Posizione predefinita a Posizione personalizzata.
- Nel campo sotto il menu a discesa, seleziona una posizione in cui Xcode deve eseguire l'output dei test. (Questo è il tuo FOLDER_WITH_TEST_OUTPUT)
Passaggio 2: crea un file di test generico
Test Lab esegue test delle unità e test dell'interfaccia utente utilizzando il framework XCTest. Per eseguire gli XCTest della tua app sui dispositivi Test Lab, compilala per i test su un dispositivo iOS generico:
- Dal menu a discesa del dispositivo nella parte superiore della finestra dell'area di lavoro di Xcode, seleziona Dispositivo iOS generico.
- Nella barra dei menu di macOS, seleziona Prodotto > Build per > Test.
In alternativa, puoi creare XCTest dalla riga di comando. Utilizza il seguente comando in un terminale:
progetto
xcodebuild -project PATH/TO/YOUR_WORKSPACE/YOUR_PROJECT.xcodeproj \ -scheme YOUR_SCHEME \ -derivedDataPath FOLDER_WITH_TEST_OUTPUT \ -sdk iphoneos build-for-testing
workspace
xcodebuild -workspace PATH/TO/YOUR_WORKSPACE.xcworkspace \ -scheme YOUR_SCHEME \ -derivedDataPath FOLDER_WITH_TEST_OUTPUT \ -sdk iphoneos build-for-testing
Passaggio 3: firma il test e verifica
Assicurati che tutti gli elementi dell'app e del test siano firmati. Ad esempio, puoi farlo tramite Xcode specificando le impostazioni di firma come il profilo di provisioning e l'identità. Per ulteriori informazioni, consulta la sezione Firma del codice Apple.
Verifica la firma dell'app eseguendo
codesign --verify --deep --verbose /path/to/MyApp.app
, dove "MiaApp" è il nome dell'app all'interno della cartella decompressa. Questo varia in base a ogni progetto. L'output previsto èMyApp.app: valid on disk
.Se stai eseguendo un XCUITest, devi verificare il test e il runner eseguendo
codesign --verify --deep --verbose /path/to/MyTest-Runner.app
dove "MyTest" è il nome del runner all'interno della cartella decompressa. Il numero varia in base a ogni progetto. L'output previsto èMyTest-Runner.app: valid on disk
.
Passaggio 4: pacchettizza l'app e testa il caricamento
Dopo aver completato la compilazione del test, comprimilo per il caricamento su Test Lab:
cd FOLDER_WITH_TEST_OUTPUT/Build/Products : \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
Puoi anche impacchettare il test comprimendo manualmente i file di test:
Apri il Finder e vai a
FOLDER_WITH_TEST_OUTPUT
.Apri la cartella con il nome del progetto come prefisso, quindi vai alla cartella
Build/Products
al suo interno.Seleziona le cartelle
Debug-iphoneos
eYOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
e poi comprimile.
Passaggio 5 (facoltativo): esegui il test localmente
Prima di eseguire il test con Test Lab, puoi eseguirlo localmente con un dispositivo collegato tramite USB per verificarne il comportamento:
xcodebuild test-without-building \ -xctestrun "Derived Data/Build/Products/YOUR_SCHEME.xctestrun" \ -destination id=your-phone-id
Passaggi successivi
Carica ed esegui il test nella console Firebase o nell'interfaccia a riga di comando gcloud.