Esegui un XCTest

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:

  1. Apri il progetto in Xcode.
  2. Nella barra dei menu di macOS, seleziona File > Impostazioni progetto.
  3. Modifica il menu a discesa Dati derivati da Posizione predefinita a Posizione personalizzata.
  4. 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:

  1. Dal menu a discesa del dispositivo nella parte superiore della finestra dell'area di lavoro di Xcode, seleziona Dispositivo iOS generico.
  2. 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

  1. 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.

  2. 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.

  3. 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

  1. 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:

  1. Apri il Finder e vai a FOLDER_WITH_TEST_OUTPUT.

  2. Apri la cartella con il nome del progetto come prefisso, quindi vai alla cartella Build/Products al suo interno.

  3. Seleziona le cartelle Debug-iphoneos e YOUR_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.