Facebook-ios-snapshot-test-case und KIF beide laufen als Unit-Tests und sind daher in dem gleichen Prozess wie der App. Als solche können sie direkt auf Ansichten zugreifen und so etwas wie renderView:
oder snapshotViewAfterScreenUpdates
verwenden. Xcode UI Testing wird in einem separaten Prozess ausgeführt und kann daher nicht direkt auf die Ansichten zugreifen.
Die UI-Automatisierung, Apples inzwischen veraltete Javascript-UI-Testbibliothek, hatte eine Funktion namens captureScreenWithName
.
Leider fehlt dem neuen Xcode UI Testing eine ähnliche Funktion in seiner Testbibliothek, was für mich wie eine eklatante Auslassung erscheint und ich empfehle Ihnen, ein Radar dafür einzureichen, da das Erstellen von Screenshots für Wahrnehmungsdifferenztests grundlegend ist es klingt wie du versuchst zu tun). Ich hoffe (und erwarte), dass in der Lage sein wird, diesen Mangel in späteren Xcode-Updates zu beheben.
In der Zwischenzeit gibt es mehr kreative Ansätze für die Erstellung von Screenshots. Sehen Sie sich diesen Stack-Überlauf response für eine Problemumgehung an, bei der der Screenshot in der App selbst erstellt und dann an den Testprozess gesendet wird.
Does in XCode 7.1, diese Arbeit nennen? Ich kann das nicht sehen. Auch durch diesen Prozess wird XCode Screenshots für fehlgeschlagene Testfälle erstellen? – Sravan
Klicken Sie in Xcode 7.1 mit der rechten Maustaste auf den Test und wählen Sie "Zum Bericht springen". –
Gibt es eine Möglichkeit, diese Screenshots innerhalb der Tests selbst zu referenzieren? Dies würde es uns ermöglichen, das Ergebnis einer Aktion mit dem gewünschten Ergebnis zu vergleichen. Ist das möglich? –