Fastlane は、すべての画面サイズとローカリゼーションのスクリーンショットを撮ってくれると主張しています。
ガイドに従って、次のような UI テスト ケースを作成しました。
override func setUp() {
super.setUp()
continueAfterFailure = false
setupSnapshot(XCUIApplication())
XCUIApplication().launch()
}
override func tearDown() {
super.tearDown()
}
func testExample() {
let app = XCUIApplication()
app.collectionViews.staticTexts["13"].swipeRight()
snapshot("calendar")
let staticText = app.collectionViews.staticTexts["26"]
staticText.tap()
snapshot("preview")
app.buttons["Editor"].tap()
snapshot("editor")
app.navigationBars["2016/6/26"].buttons["Cancel"].tap()
app.navigationBars["My Diaries"].buttons["search filled"].tap()
let tablesQuery = app.tables
tablesQuery.textFields["Search"].tap()
tablesQuery.textFields["Search"].typeText("beach")
snapshot("search")
app.navigationBars["Search"].buttons["search colored"].tap()
app.navigationBars["Results - 1 / 2"].buttons["right"].tap()
snapshot("result")
}
英語シミュレーターでテストを実行すると、成功します。中国語シミュレーターでテストを実行すると (アプリを中国語にローカライズしたため、中国語で実行したいのです)、アプリでこれらの英語の単語が見つからないため、テストが機能しません。
NSLocalizedString
しかし、ガイドから、またはそのようなものを使用して、これを処理すると想像できます。
そこでcd
、プロジェクト ディレクトリに移動しsnapshot
、ターゲットを選択すると、スクリーンショットの撮影が開始されます...
...英単語が見つからなかったので、「Editor」ボタンをタップする必要がある部分に到達するまで。そして墜落した。
では、アプリがどのローカリゼーションにあるかを確認するために if ステートメントを追加する必要がありますか? それは首の痛みでしょう!その場合は、自分でスクリーンショットを撮りたいと思います。
私はファストレーンを誤解しているに違いないと思います。スナップショットを使用してスクリーンショットを撮る正しい方法は何ですか?