di Facebook ios-snapshot-test-case e KIF entrambi girano come unit test, e quindi sono nello stesso processo, come l'applicazione. Come tali, possono accedere direttamente alle visualizzazioni e utilizzare qualcosa come renderView:
o snapshotViewAfterScreenUpdates
. Il test dell'interfaccia utente Xcode viene eseguito in un processo separato e pertanto non può accedere direttamente alle viste.
UI Automation, la libreria di test UI Javascript deprecata di Apple, aveva una funzione chiamata captureScreenWithName
.
Purtroppo, il nuovo Xcode UI test è priva di qualsiasi funzione simile nella sua libreria di test, che a me sembra un palese omissione e vi incoraggio a presentare una radar per esso, come prendere le immagini è fondamentale per i test di differenza percettivi (che sembra che tu stia cercando di fare). Spero (e aspetto) che sia in grado di risolvere questa carenza negli aggiornamenti successivi di Xcode.
Nel frattempo, ci sono più approcci creativi per scattare screenshot. Vedi questo stack overflow response per una soluzione alternativa che consiste nel prendere lo screenshot nell'app stessa e quindi inviarlo alla procedura di test.
Fa questo lavoro in Xcode 7.1? Non sono in grado di vedere lo stesso. Attraverso questo processo, XCode eseguirà anche schermate per i casi di test non riusciti? – Sravan
In Xcode 7.1 fare clic con il tasto destro del mouse sul test e selezionare "Jump to report". –
C'è un modo per fare riferimento a questi screenshot all'interno dei test stessi? Questo ci permetterebbe di confrontare il risultato di un'azione con il risultato desiderato. È possibile? –