如何从主Bundle进入UITest目标本地化?
func localizedText(_ key: String) -> String {
return Bundle.main.localizedString(forKey: key, value: nil, table: nil)
}
我尝试访问Bundle.main但没有本地化字符串。似乎我无法导入应用程序的主要目标来做Bundle(for:ClassName.self).localized ...
任何提示?
答案 0 :(得分:6)
要在UITests中使用本地化字符串,您必须做两件事:
1)将您的Localizable.strings文件添加到您的UITest目标
2)通过UITest包访问字符串:
func localizedText(_ key: String) -> String {
let uiTestBundle = Bundle(for: AClassFromYourUITests.self)
return NSLocalizedString(key, bundle: uiTestBundle, comment: "")
}
只需确保使用属于UITest目标的类来访问该捆绑包。
使用Bundle.main
在运行UITests时不起作用,因为它为您提供了UITest Runner App而不是UITest bundle的捆绑