UITests(快照)中的本地化字符串始终为英文

Posted

技术标签:

【中文标题】UITests(快照)中的本地化字符串始终为英文【英文标题】:Localized Strings are always in English in UITests (Snapshot) 【发布时间】:2017-05-27 09:50:41 【问题描述】:

我对 Fastlane 还很陌生,并且喜欢 Snapshot 的想法,但我遇到了一个小问题。 当我尝试创建一组新的屏幕截图时,我遇到了 UITests 不使用正确的本地化字符串来获取 UI 元素的问题。

我当前的状态基于这个 Stack 条目:XCode 7 UITests with localized UI

本地化方法:func localizedString(_ key: String) -> String let uiTestBundle = Bundle(for: MyUITests.self) return NSLocalizedString(key, bundle: uiTestBundle, comment: "") 尝试以这种方式执行敲击:app.navigationBars[localizedString("key_1")].buttons[localizedString("key_2")].tap()

我得到的错误如下: No matches found for "Rolling stone" NavigationBar 滚石是关键的基础/英语本地化,但应该有一个德语。因此,无论出于何种原因,UITest 总是选择英文本地化。

有人知道如何解决这个问题吗?我检查了 SnapshotHelper,它通过“de-DE”作为语言,所以这不是重点。 但我只是找不到错误:(

【问题讨论】:

【参考方案1】:

Localization

这里的链接应该足以解决您的问题。您只需在编辑方案选项下的测试选项卡中选择正确的语言选项。

【讨论】:

使用 fastlane 时,您不必为每个本地化选择语言选项。事实上,你不能这样做,你从命令行启动工作流。

以上是关于UITests(快照)中的本地化字符串始终为英文的主要内容,如果未能解决你的问题,请参考以下文章

运行 Xamarin.UITests 时有没有办法让应用程序选择语言或文化

UITests-如何在 UITests 中获取当前语言

XCode 中禁用的 UITests

SK产品本地化标题始终为英文

Xamarin UITests:Calabash 未链接

如何在 swift UITests 中的 XCUIApplication 中设置暗模式?