2016-05-17 11 views
9

私のアプリのUIテスト中に作成されたスクリーンショットの場所を見つける方法に興味があります。 Fastlane Snapshotがこのスクリーンショットを取得する方法を理解したいと思います。数時間の研究の後、私はそれらのスクリーンショットの場所を見つけることができません。Xcode UI Testのスクリーンショットファイルはどこにありますか?

+0

そのフォルダには非常に注意してください!継続的な統合システムでは、何百万ものスクリーンショットをすばやく埋めることができます。その時点で、あなたは君たちに戸惑っています(スペースを使い果たし、 'rm -rf'をしようとすると幸運になります)。 –

答えて

10

スクリーンショットは、[派生データ]フォルダ内に保存されます。 Xcode、Window> Projectsに移動して、プロジェクトの派生データパスの横にある小さな矢印をクリックしてください。

プロジェクトの派生データフォルダ(後に読み込まれるフォルダの名前である必要があります)から、Logs/Testに移動します。

テストフォルダの中には、名前にUUID(テスト実行ごとに1つ)が付いたテスト要約.plistファイルとAttachmentsというフォルダがあります。スクリーンショットはここにあります。

これらのフォルダがない場合は、最初にテストを実行してください。

あなたが望むスクリーンショットを作成するには、* _TestSummaries.plistファイルを調べる必要があります。それをXcodeで開き、テストの要約をあなたが興味を持っているSubActivityに従います。いくつかのSubActivitiesはスクリーンショットを持たず、HasScreenshotDataのキーをNOに設定します。

スクリーンショットデータでSubActivityが見つかったら、そのSubActivityのUUIDとAttachmentsフォルダ内のスクリーンショットのファイル名を一致させます。

私のスクリーンショットは、/Users/{username}/Library/Developer/Xcode/DerivedData/{project_name}-tywebfjsswmghapfjfbzhuazjf/Logs/Test/Attachmentsにありました。

.plistでは、イベントのスクリーンショットデータの詳細を見つけるためにこのパスに従いました:TestableSummaries > Item 0 > Tests > Item 0 > Subtests > Item 0 > Subtests > Item 0 > ActivitySummaries > Item 1 > SubActivities > Item 0

+0

すばらしい答え!ありがとうございます – Robert

+0

@Olethaどのアクティビティがスクリーンショットを引き起こすのか知っていますか?タップでショットが発生するようですが、試行錯誤があります。 – Leo

+1

@レオ私は100%確信していませんが、ほとんどのジェスチャー(タップ、スワイプ、スクロールなど)によってスクリーンショットが生成され、スクリーンショットは要素を見つけるときや期待を評価するときによく使われます。 Fastlaneのスナップショットツールは、未知の方向への回転を使用して、スクリーンショットイベント(アプリケーションには影響しません)をトリガーします:https://github.com/fastlane/fastlane/blob/master/snapshot/README.md - あなたは使用できますこれはあなたがいくつかのスクリーンショットを管理したい場合、これです。 :) – Oletha

関連する問題