10

Il mio team e io abbiamo configurato un server Jenkins per automatizzare i test di unità e ui in esecuzione su un Mac Mini che utilizziamo come server di build. Questo Mac Mini non ha nessuna periferica collegata e l'unico modo per accedervi è effettuare il login da remoto.Test UI Xcode 7 non riescono con "Tempo scaduto in attesa del completamento dell'evento chiave"

Quando si accede all'apparecchio da remoto, utilizzando l'app di condivisione dello schermo incorporata nel mio Mac, i test funzionano perfettamente con il simulatore iOS. Tuttavia, se chiudo la connessione remota mentre i test sono in esecuzione, i test che implicano la digitazione del testo non riusciranno con il seguente errore quando si tenta di digitare (tutti gli altri test/test dell'interfaccia utente passano a pieni voti):

Errore di asserzione: Timeout durante l'attesa per l'evento chiave per completare

Questo fa sì che, ovviamente, alcuni problemi quando Jenkins è in funzione automaticamente i test per noi, dal momento che non sempre vogliamo essere registrato in remoto nella macchina.

Mi sembra che questo abbia qualcosa a che fare con la tastiera software del simulatore ma non riesco a capire perché sarebbe un problema. Il Mac deve avere una sorta di output di visualizzazione collegato in modo che la tastiera del software esista o qualcosa del genere? Connettere un monitor alla macchina (anche se non viene realmente utilizzato) causerà il superamento dei test? Perché dovrebbe essere così?

+0

Non sono sicuro che sia d'aiuto, ma ricordo che Mac Minis non sfrutta appieno la GPU quando gira senza testa. Ho sentito di [pochi] (http://blog.macsales.com/25997-headless-mac-video-accelerator-new-solution-to-old-problem) [workaround] (http: // www. macrumors.com/2015/11/10/newertech-hdmi-headless-adapter-for-mac-mini/) ma non sono mai riuscito a provarlo. –

risposta

0

Sto usando Xcode 8.2.1 e l'esecuzione di test su iOS 9.3 versioni. Un semplice trucco consiste nell'aggiungere un sonno per 2-5 secondi dopo aver toccato la casella di testo e prima di scriverlo. Tuttavia, questa non è una soluzione permanente.

un'altra soluzione AFFIDABILE

Deseleziona tutte le preferenze della tastiera nelle impostazioni prima di eseguire i test.

"KeyboardAllowPaddle": false, 
"KeyboardAssistant": false, 
"KeyboardAutocapitalization": false, 
"KeyboardAutocorrection": false, 
"KeyboardCapsLock": false, 
"KeyboardCheckSpelling": false, 
"KeyboardPeriodShortcut": false, 
"KeyboardPrediction": false, 
"KeyboardShowPredictionBar": false