Xcode 7 UITesting OS X上的菜单栏应用程序

时间:2015-08-28 15:01:23

标签: macos xcode-ui-testing

我正在尝试将XCode 7 UITesting用于像Macbox X上的Dropbox,1Password这样的菜单应用程序。这是否可以使用Xcode 7提供的最新功能自动进行UI测试?我知道UI测试适用于iOS应用程序,但是演示从未显示它是否适用于视频中的OS应用程序。如果它适用于OS X应用程序,但它是否适用于菜单栏应用程序?请指导我解决这个问题。

2 个答案:

答案 0 :(得分:1)

我意识到这个问题已经很老了,但是想分享我的答案。

我创建了我的Info.plist文件的副本w / LSUIElement设置为NO。然后,我创建了一个新的“UITesting”配置,并将其INFOPLIST_FILE构建设置指向了副本。一个更好的选择是创建用户定义的构建设置,然后将该设置的值分配给LSUIElement,但Xcode不允许它与布尔值。

一旦设置了UITesting配置,您就可以编辑您的方案以在测试期间使用此配置。

答案 1 :(得分:1)

我找到了一个更好的解决方案,这个答案的动机是:https://stackoverflow.com/a/5384319/96737

不是从Info.plist中删除Dock功能,而是设置应用程序的激活策略"作为"配件"编程。

在swift3中通过Xcode 8.1:

func applicationDidFinishLaunching(_ aNotification: Notification) {
    NSApp.setActivationPolicy(NSApplicationActivationPolicy.accessory)
}

最大的好处是它可以在运行时和UI测试中运行而无需修改。您不需要激活或取消激活激活策略,具体取决于您是否在UI测试中运行应用程序。

它只是有效。