2015-08-28 57 views
6

我想在Mac OS X上使用Xcode 7 UITesting为像Dropbox,1Password这样的Menubar应用程序。这可能使用Xcode提供的最新功能自动执行UI测试7?我了解UI测试适用于iOS应用程序,但演示从不会显示它是否在视频中运行OS应用程序。如果它适用于OS X应用程序,但它是否适用于菜单栏应用程序?请指导我解决这个问题。Xcode 7 UITesting在OS X上的菜单栏应用程序

+1

我有这个完全相同的问题。您可以使用UI测试OSX应用程序,但是如果您在Info.plists上启用了“Application is agent(UIElement)”选项,则“XCUIApplication()。launch()”停止工作。有任何想法吗? – Gaston

回答

1

我意识到这个问题很旧,但想分享我的答案。

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

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

1

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

从Info.plist中取出码头能力相反,它是更好地设置应用程序的“激活策略”为“附件”程序。

在swift3通过的Xcode 8.1:

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

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

它只是工作。

相关问题