【发布时间】:2020-04-14 07:25:16
【问题描述】:
我想知道是否有办法在 swift UITests 项目中为 XCUIApplication 在代码中设置暗模式。
我需要在同一个测试中以亮模式和暗模式启动应用程序。在方案中将其设置为硬编码值将不起作用,或者从外部破解模拟器也不起作用(出于性能和可维护性等原因)。
目前我这样设置启动参数:
let app = XCUIApplication()
var launchArguments: [AnyHashable] = []
launchArguments.append("-AppleLanguages")
launchArguments.append(langCode)
launchArguments.append("-AppleLocale")
launchArguments.append(localeCode)
app.launchArguments = launchArguments
app.launch()
而且效果很好。
如何为 XCUIApplication 实例设置暗模式?
我做了什么:
- 广泛搜索 Apple 开发文档。
- StackOverflow 仅展示了如何在 Xcode 中的方案中对此进行硬编码,或者如何通过杀死模拟器、擦除它并破解 plist 值从外部破解模拟器。
感谢您的帮助!
【问题讨论】:
-
不,不是。我更新了这个问题,以明确说明通过关闭模拟器、擦除模拟器并插入 plist 值来从外部入侵模拟器并不是指示 XCUIAApplicuion 以暗模式启动的解决方案——这是问题的前提。也已经提到在 XCode UI 中的方案中设置它也不是一个选项。
-
尝试的潜在论据:
-AppleInterfaceStyle Dark。我从defaults read NSGlobalDomain AppleInterfaceStyle找到了这个论点。但需要经过测试才能验证。 -
@RobLabs 你就是男人! (或者我不知道的女人)。无论如何,这行得通。如果您将此添加到答案中,我会接受它。当你说你在哪里找到它时,我有点困惑 - 这是一个命令吗?或者它是xcode中的东西?感谢您提供任何其他信息:)
-
@TheJeff,我个人需要更多了解如何在 XCUIApplication 中使用 launchArguments,但这应该可行:
launchArguments.append("-AppleInterfaceStyle Dark")。
标签: swift ios-simulator xcuitest