現在の画面要素 (ラベル、画像、ボタン) のスナップショットを作成し、アクセシビリティ情報を json ファイルに保存することで、Xcode 7 の新しい UI テスト機能を拡張しようとしています。
後で UI テストを実行するときに、現在の画面のスナップショットを取得して既存のものと比較し、追加の要素または欠落している要素が見つかった場合、テストは失敗するという考え方です。
残念ながら、正しいターゲットを使用しても、UI テスト中にアプリのリソースを利用できないように見えるため、比較のために json ファイルを読み込むことができません。次の標準コードは、リソースの読み込みに失敗します。
guard let resourcePath = NSBundle.mainBundle ().pathForResource ("StartScreenShapshot", ofType:"json") else {
XCTFail ("can't load resource StartScreenShapshot")
return
}
UIテストは画面上で何が起こっているかに基づいている必要があり、アプリの動作へのアクセスは必要ないはずですが、リソースバンドルへのアクセスがないことは苦痛であるため、Appleがこのサンドボックスアプローチを採用した理由を理解できます.
Xcode 7 UI テスト中に、アプリからローカル リソースをロードする方法、または他の方法でローカルにロードする方法はありますか?
ファイルをローカルに(自動的に)保存することも大きなプラスになり、手動で作成する必要がなくなります。