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 i test che crei, in una directory Dati derivati. Se vuoi, puoi mantenere la posizione predefinita per questa directory, ma spesso è utile scegliere un luogo più facilmente accessibile per i file, soprattutto se prevedi di eseguire spesso i test con Test Lab spesso:

  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 generare i test. (Questa è la tua FOLDER_WITH_TEST_OUTPUT)

Passaggio 2: crea un file di test generico

Test Lab esegue i test delle unità e della UI utilizzando il framework XCTest. Per eseguire gli XCTest dell'app sui dispositivi Test Lab, creali 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 > Crea per > Test.

In alternativa, puoi creare l'XCTest dalla riga di comando. Utilizza il seguente comando in un terminale:

project

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 artefatti nell'app e nel 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 pagina relativa alla firma del codice Apple .

  2. Verifica la firma dell'app eseguendo codesign --verify --deep --verbose /path/to/MyApp.app, dove "MyApp" è il nome dell'app all'interno della cartella decompressa. Questo varia per ogni progetto. L'output previsto è MyApp.app: valid on disk.

  3. Se esegui 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. Questo varia per ogni progetto. L'output previsto è MyTest-Runner.app: valid on disk.

Passaggio 4: crea un pacchetto dell'app e del test per il caricamento

  1. Dopo aver creato correttamente il test, comprimilo in un file ZIP per caricarlo in Test Lab:

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

Puoi anche creare un pacchetto del 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 quindi comprimile.

Passaggio 5: (facoltativo) esegui il test in locale

Prima di eseguire il test con Test Lab, puoi eseguirlo in locale con un dispositivo collegato tramite USB per verificarne la qualità del 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 Firebase console o in gcloud CLI.