2016-05-17 24 views
9

Uygulamamın UI Testleri sırasında oluşturulan bir ekran görüntüsünün yerini nasıl bulacağımı merak ediyorum. Fastlane Snapshot'un bu ekran görüntüsünü nasıl yakaladığını anlamak isterim. Birkaç saatlik araştırmadan sonra bu ekran görüntülerinin yerini bulamıyorum.Xcode UI Testinin ekran görüntüsü dosyası nerede?

+0

Bu klasöre çok dikkat edin! Sürekli entegrasyon sistemlerinde, milyonlarca ekran görüntüsünü hızlıca doldurabilirsiniz. Bu noktada, royally vidalanırsınız (alanınız tükenir ve "rm -rf" yi deneyen iyi şanslar). –

cevap

10

Ekran sizin Türetilmiş Veri klasör içinde saklanır. Bunu Xcode, Window> Projects'a gidip proje için türetilmiş veri yolunuzun yanındaki küçük oku tıklayarak bulabilirsiniz. Projeniz türetilmiş veri klasöründen

(ondan sonra harflerin bir yük ile klasörün adı olmalıdır), Logs/Test gidin.

Test klasörünün içinde, test özeti, UUID'leri kendi adlarına (test başına bir tane) ve Attachments adlı bir klasörle birlikte test listesi olacak - ekran görüntüleri burada. Bu klasörlerin herhangi değildir varsa

, önce testlerini emin olun.

dışarı istediğiniz ekran görüntüsü hangi çalışmak için, * _TestSummaries.plist dosyası aracılığıyla kazmak gerekir. Xcode'ta açın ve ilgilendiğiniz AltAktivite için test özetini takip edin. Bazı SubActivities ekran görüntülerine sahip değildir ve HasScreenshotData anahtarının NO'a ayarlanmış olması gerekir.

Ekran görüntüsü verileriyle bir SubActivity bulduğunuzda, bu AltAktivite için UUID değerini Attachments klasöründeki ekran görüntüsünün dosya adıyla eşleştirin. /Users/{username}/Library/Developer/Xcode/DerivedData/{project_name}-tywebfjsswmghapfjfbzhuazjf/Logs/Test/Attachments:

Benim ekran yer bulundu. .plist olarak

, ben bir olay için ekran görüntüsü verilerinin ayrıntıları bulmak için bu yolu izledi: TestableSummaries > Item 0 > Tests > Item 0 > Subtests > Item 0 > Subtests > Item 0 > ActivitySummaries > Item 1 > SubActivities > Item 0.

+0

Harika cevap! Teşekkür ederiz – Robert

+0

@Oletha Ekrandaki görüntülerin hangi etkinliklere neden olduğunu biliyor musunuz? Bana bir dokunuşun bir atışa neden olduğu görülüyor, ama hepsi deneme yanılma hatası. – Leo

+1

@Leo% 100 emin değilim, ancak çoğu hareket (dokunma, kaydırma, kaydırma ...) ekran görüntülerine neden oluyor ve ekran görüntüleri de unsurları yerleştirirken veya beklentileri değerlendirirken sıklıkla çekiliyor. Fastlane'in anlık görüntü aracı, bir ekran görüntüsü etkinliğini tetiklemek için bilinmeyen bir yönlendirmeye bir rotasyon kullanır (bu uygulamada etkisi yoktur): https://github.com/fastlane/fastlane/blob/master/snapshot/README.md - kullanabilirsiniz Bu, bazı ekran görüntülerinin kontrolünde olmak istiyorsanız. :) – Oletha