2016-05-17 7 views
9

Ich bin interessiert, wie man den Ort eines Screenshots findet, der während UI Tests meiner App erstellt wird. Ich würde gerne verstehen, wie Fastlane Snapshot diesen Screenshot ergreift. Nach ein paar Stunden Recherche kann ich den Ort dieser Screenshots nicht finden.Wo ist die Screenshot-Datei von Xcode UI Test?

+0

Seien Sie sehr vorsichtig mit diesem Ordner !!! In Continuous-Integration-Systemen kann es schnell mit Millionen von Screenshots gefüllt werden, an diesem Punkt sind Sie königlich geschraubt (Sie werden keinen Platz mehr haben und viel Glück versuchen, "rm-rf" es). –

Antwort

10

Screenshots werden in Ihrem Ordner Abgeleitete Daten gespeichert. Sie finden dies unter Xcode, Fenster> Projekte und klicken auf den kleinen Pfeil neben dem abgeleiteten Datenpfad für das Projekt.

Von Ihrem Projekt abgeleitet Datenordner (sollte der Name Ihres Ordners mit einer Ladung von Buchstaben nach ihm sein), gehen Sie zu Logs/Test.

Innerhalb des Test-Ordners wird Test Zusammenfassung .plist Dateien mit UUIDs in ihren Namen (eines pro Testlauf) und ein Ordner namens Attachments - die Screenshots sind hier.

Wenn einer dieser Ordner nicht vorhanden ist, stellen Sie sicher, dass Sie die Tests zuerst ausgeführt haben.

Um herauszufinden, welchen Screenshot Sie möchten, müssen Sie die Datei * _TestSummaries.plist durchsuchen. Öffnen Sie es in Xcode und folgen Sie der Testzusammenfassung bis zu der SubActivity, an der Sie interessiert sind. Einige SubActivities haben keine Screenshots und der Schlüssel HasScreenshotData ist auf NO gesetzt. Wenn Sie eine SubActivity mit Screenshotdaten finden, müssen Sie die UUID für diese SubActivity mit dem Dateinamen des Screenshots im Ordner Attachments vergleichen.

Meine Screenshots befanden sich unter: /Users/{username}/Library/Developer/Xcode/DerivedData/{project_name}-tywebfjsswmghapfjfbzhuazjf/Logs/Test/Attachments.

In der .plist folgte ich diesem Pfad, um Details der Screenshotdaten für ein Ereignis zu finden: TestableSummaries > Item 0 > Tests > Item 0 > Subtests > Item 0 > Subtests > Item 0 > ActivitySummaries > Item 1 > SubActivities > Item 0.

+0

Große Antwort! Danke – Robert

+0

@Oletha Wissen Sie, welche Aktivitäten Screenshots verursachen? Es scheint mir, dass ein Tippen einen Schuss verursacht, aber es ist alles Versuch und Irrtum. – Leo

+1

@Leo Ich bin mir nicht 100% ig sicher, aber die meisten Gesten (Tippen, Wischen, Scrollen ...) verursachen Screenshots, und Screenshots werden auch häufig beim Auffinden von Elementen oder bei der Bewertung von Erwartungen verwendet. Das Snapshot-Tool von Fastlane verwendet eine Drehung in eine unbekannte Ausrichtung, um ein Screenshot-Ereignis auszulösen (was keinen Einfluss auf die App hat): https://github.com/fastlane/fastlane/blob/master/snapshot/README.md - Sie können es verwenden Dies, wenn Sie die Kontrolle über einige Screenshots haben wollen. :) – Oletha