2016-06-20 33 views
14

XCTest non funziona con il messaggio: *** Canceling tests due to timeout in Waiting for test process to check in... Questo ha appena iniziato a venire negli ultimi giorni. Sto usando Xcode 7.3.1, con iOS 9.3.2 in esecuzione su un iPhone 6. La mia app è scritta principalmente in Swift.XCTest Errore sul dispositivo fisico: "Annullamento dei test a causa del timeout ..."

Ho visto alcuni post simili:

  1. Unable to run XCTests on iOS device
  2. iOS tests will not run on simulator when using Jenkins through JNLP

Quegli altri messaggi parlare di questo problema come derivanti con la firma del codice. La firma del codice non sembra essere il mio problema: ho esaminato l'utilità KeyChain Access e non vedo alcun certificato scaduto rilevante. Inoltre, quello che finora è (molto temporaneamente) risolvendo il mio problema è quello di riavviare il mio iPhone. (Sfortunatamente, quella correzione non dura a lungo-- forse qualche esecuzione di XCtest e il problema si ripresenta). Non sto gestendo Jenkins, solo XCTests.

Ho provato a riavviare Xcode e rimuovere tutti i file/cartelle dalla cartella DerivedData ma nessuno di questi risolve il problema.

I ha fatto solo installare Xcode8 (prima versione beta). Ma a parte averlo lanciato una o due volte, di solito non lo uso. Sembra strano che questo problema si verifichi dopo averlo installato.

aggiornamento 6/25/16

ho ristretto la questione un po 'giù. Molti altri sintomi compaiono nello stesso momento in cui il problema di timeout:

  1. console accedendo direttamente dal print dichiarazioni nei file fermate XCTest.
  2. Errore del timer - questo è in realtà la radice del problema. I miei test prevedono innanzitutto l'attesa di alcune interazioni con il server, che si verificano. Ma l'attesa utilizza un NSTimer che non esegue mai il suo callback.
  3. I punti di arresto non funzionano più.

Sembra utile notare che sto eseguendo manualmente questi XCTest. Cioè, sto eseguendo ogni test separatamente, quindi ogni test implica una build.

Inoltre, finora ho provato la seguente:

  1. Riavvio Xcode (non aiuta)
  2. riavvio di Mac OS X (non aiuta)
  3. Rimozione contenuto di dati derivati ​​(doesn 't help)
  4. Riavviare iPhone-- aiuta, ma solo di nuovo consente di eseguire alcuni test Xcode.
  5. provato a fare funzionare con il wifi rispetto hotspot su iPhone (nessun cambiamento di emissione)
  6. TODO: Correndo con simulatore
  7. Questo potrebbe essere un problema di cavo o porta USB? Cambiare il cavo che collega il dispositivo non aiuta.
  8. L'eliminazione dell'app e la reinstallazione/ricostruzione non sono d'aiuto.
  9. Provato su hardware diverso (iPad Air con iOS 9.3.2). Stessi problemi

La mia configurazione è: iOS 9.3.2, Xcode 7.3.1, Mac OS X 10.11.5 (15F34).

risposta

3

Ho lo stesso problema con voi. Ho provato tutto il possibile come te. E ancora non trovi la causa principale per risolverlo. Il problema è come causa di Xcode8, ma non riesco a trovare alcun registro del dispositivo o messaggio di errore per provarlo.

aggiornamento: miei dispositivi iPhone6s (9.3.1 -> 9.3.2) iPhone5 (9.3.1 -> 9.3.2) entrambi comparire questo problema Xcode Versione 7.3.1 (7D1014) Xcode-beta versione 8.0 (8S128D)

+0

Cosa ti fa pensare che la causa sia Xcode8? –

+1

Questo strano problema non mi è mai apparso, fino a quando non ho scaricato xcode8-beta e aperto più volte. Oggi c'è un nuovo aggiornamento della versione. testing ... – DaidoujiChen

+0

Scarica Xcode8-beta2 e aprilo. Ancora fallito ... – DaidoujiChen

6

ho avuto lo stesso problema con 7.3.1, 9.3.3 iPad, Mac 10.11.6

profili di provisioning sono belle e problemi su questo fronte.

Prendendo spunti dai passaggi indicati da OP, il problema è andato via dopo aver riavviato iPad e XCode due volte (in questo ordine). Dopo aver riavviato XCode, ho dovuto scollegare iPad e ricollegarlo.

Non è stato necessario eliminare i dati derivati ​​o riavviare il Mac.

Anche il mio amico ha affrontato problemi simili e ha cercato il supporto tecnico Apple fornendo un progetto di esempio. Il team di supporto di Apple Tech ha risposto chiedendo di presentare un errore

+0

Hai salvato il mio tempo. Grazie. – Omkar

17

Il problema sta nel fatto (o meglio: bug grave in xcodebuild) che il timeout per la connessione al server XCTest inizia nel momento in cui si esegue il comando xcodebuild. Il timeout è 120 secondi, quindi se la compilazione + avvio del simulatore richiede più di 2 minuti xcodebuild darà questo errore "Annullamento dei test a causa del timeout".

La soluzione è di suddividere la compilazione in due comandi. Uno per la costruzione e uno per l'esecuzione delle prove:

> xcodebuild clean build build-for-testing <other options> 
> xcodebuild test-without-building <other options> 

questo risolverà il problema di timeout, perché l'azione di prova, senza-edificio non dispone di compilare prima.

+0

Hmmm. Almeno per la mia situazione, questo non suona bene - sto eseguendo i test manualmente dall'interfaccia utente Xcode, non usando 'xcodebuild'. –

-1

Questo è un problema causato da un ciclo infinito nel codice. Ho avuto lo stesso errore ma ho rimosso il pezzo di codice che causa il problema e ha funzionato bene. xcode non ti dà molte informazioni per funzionare. Alcune cause potrebbero essere una variabile globale e una singola che punta l'una all'altra

+0

'il problema è causato '-- wow-- sei molto definitivo su questo :). –