2015-07-15 8 views

risposta

13

UI test in Xcode prende automaticamente le immagini della tua applicazione dopo ogni passo.

Basta andare a uno dei test già eseguiti (Report Navigator> scegliere un test), quindi iniziare ad espandere i test. Quando passi il mouse sopra i passaggi, vedrai le icone degli occhi vicino ad ogni passaggio che ha uno screenshot.

Ecco un esempio ... in questo caso, notare l'icona dell'occhio alla fine della riga grigia. Se dovessi toccarlo, vedrei uno screenshot dell'applicazione proprio quando il pulsante nella mia app è stato toccato (dal momento che il passaggio è Toccare il pulsante "Pulsante").

enter image description here

+0

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

+2

In Xcode 7.1 fare clic con il tasto destro del mouse sul test e selezionare "Jump to report". –

+1

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? –

1

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.

0

Ho creato uno strumento che salva i test negli ultimi n screenshot e genera il report dei risultati dei test JUnit, analizzando il file plist di TestSummaries dai log di test. https://github.com/nacuteodor/ProcessTestSummaries

Forse, questo ti aiuta.

+0

Posso chiederti di dare un'occhiata a [Come offrire librerie open source personali?] (Https://meta.stackexchange.com/q/229085) per favore? –

3

Se si desidera generare le immagini, è anche possibile utilizzare snapshot, che descrive come attivare le immagini nei test dell'interfaccia utente: https://github.com/fastlane/fastlane/tree/master/snapshot#how-does-it-work

Esso ruota fondamentalmente il dispositivo per .Unknown (Source), che innesca una fotografia senza effettivamente modificare lo stato della tua app.

Confrontando l'output con il file plist generato consente di assegnare un nome anche correttamente lo screenshot

+0

snapshot fastlane e consegna funziona alla grande durante la generazione di screenshot dell'app store. Tuttavia, sto cercando una soluzione per generare un sito web statico da istantanee che è mirato esclusivamente a UITests. Ad esempio, i batch di schermate sono separati in base a casi di test + dispositivi + lingua. Possiamo avere un tale gusto nell'istantanea in futuro o conosci qualche alternativa? – MadNik

+0

Non puoi usare 'snapshot' per quello? – KrauseFx

+0

Posso. E ovviamente sto usando 'snapshot'. Voglio solo un modello diverso per la pagina Web statica generata (una separazione dei lotti di immagini in base al test) su cui sto lavorando. Mi stavo chiedendo se c'è già qualcosa disponibile. – MadNik

Problemi correlati