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