Tag: xcode ui testing

当用Xcode bot运行时,UItesting在文本input到文本视图时失败

我有以下XCTest用户界面testing,将文本input到文本视图中。 let textView = app.textViews.elementBoundByIndex(0) textView.tap() textView.typeText("Hello world") 当作为Xcode机器人运行时,它显示了typeText调用的以下错误。 断言:UItesting失败 – 失败:超时等待关键事件完成 有趣的是,当我从同一台计算机上的Xcode手动运行testing时, 在升级到Xcode 7.1 / iOS 9.1之前,此testing也通过了Xcode bot。 什么可能是问题的根源? 这里是一个与UItesting隔离的演示: https : //github.com/exchangegroup/UITestTextViewDemo iOS 9.1模拟器,OS X 10.11.1(15B42),Xcode 7.1(7B91b),OS X Server 5.0.15(15S4033) 向苹果报告。

Xcode UItesting找不到以编程方式添加的视图

所以我以编程方式向我的视图中添加一个子视图,并且当我将所有的辅助参数附加到它时: [labelView setAccessibilityLabel:@"label"]; [labelView setIsAccessibilityElement:YES]; [labelView setUserInteractionEnabled:YES]; 但是当我像这样查询UI时: let app = XCUIApplication() app.staticTexts["label"] testing失败,因为它找不到视图。 任何想法如何处理这个,如何使dynamic添加的视图可用于UItesting?

如何将我的应用程序模块导入MyAppUITests文件?

这是我的简单testing用例: import XCTest @testable import MyApp //it doesn't work 因为这个: class TabBarControllerTests: XCTestCase { override func setUp() { super.setUp() let defaults = NSUserDefaults.standardUserDefaults() defaults.setObject([], forKey: DBTabBarOrderedIndexesKey) //key is undefined, because of lack of my app module defaults.synchronize() continueAfterFailure = false XCUIApplication().launch() } func testIsOrderOfTabsSaved() { XCUIApplication().tabBars.buttons["Catering"].tap() //what next? } } 一旦我点击UITabBarItem我改变了DBAppSettings.mode的值,所以在这里我想有一个访问我的DBAppSettings.mode属性来检查它是否真的改变。 我注意到有一个奇怪的事情,当我build立我的应用程序,并检查构build什么, 没有我的UITest目标的生成 。 是不是重要?

可能将应用程序从背景到前景?

在运行XCT UItesting时,可以将应用程序在后台进行testing: XCUIDevice().pressButton(XCUIDeviceButton.Home) 它可能以某种方式使应用程序回到前台(活动状态),而无需重新启动应用程序?

Xcode UItesting – 与testingpipe理器服务的连接丢失

有时在运行我的UItesting时,出现以下错误Lost connection to test manager services 。 没有日志或任何东西。 随机发生。 我会提供更多的信息,但由于错误的性质,我只是没有。 使用Xcode 7 beta 5。

addUIInterruptionMonitor(withDescription:handler :)不能在iOS 10或9上使用

以下testing可以在iOS 11上正常工作。它将取消提醒使用位置服务的权限,然后放大地图中的位置。 在iOS 10或9上,它没有这个,testing仍然成功 func testExample() { let app = XCUIApplication() var handled = false var appeared = false let token = addUIInterruptionMonitor(withDescription: "Location") { (alert) -> Bool in appeared = true let allow = alert.buttons["Allow"] if allow.exists { allow.tap() handled = true return true } return false } // Interruption won't happen without some […]

在XCode 7.1的UItesting中访问应用程序模块时链接器错误

我正在尝试在我的项目中执行一些uitesting。 一切都很顺利,只要我保持简单:loggingtesting用例,添加一些断言,然后运行testing。 这工作正常,但是当我尝试从我的testing中访问应用程序模块时,链接器会引发错误(请参见下文): 在应用程序源文件中: func foo() { assert(true) } 在UItesting中: import XCTest @testable import MyApp func testExample() { foo() } 错误: 未定义的符号架构i386:“MyApp.foo() – >()”,引用自:MyAppUITests.MyAppUITests.testExample(MyAppUITests.MyAppUITests)() – >()in MyAppUITests.o ld:symbol(s)not found for架构i386铛:错误:链接器命令失败,退出代码1(使用-v来查看调用) 架构x86_64的未定义符号:MyAppUITests.MyAppUITests(MyAppUITests.MyAppUITests)() – >()in MyAppUITests.o中引用的“MyApp.foo() – >()”,ld:symbol(s)not found for架构x86_64 我有类似的问题报告在这里: https : //forums.developer.apple.com/thread/20609但没有解决scheme。 对我来说就像@testable根本无法正常工作。 在developer.apple.com上的人尝试通过在设置中添加testing主机和Bundle Loader来解决这个问题,但是我不认为这是正确的方法。 我认为@可@testable应该使所有的工作,现在看起来不像。 任何帮助感激!

如何在Xcode 7上模拟UITest中的数据?

有人试图用新的Xcode 7 UItesting包含模拟数据? 你有没有使用特定的框架? 你是如何pipe理目标的?

在UI Test(Xcode 7)中无法访问string本地化

所以我有一个情况,我有几个textFieldsvalidation。 我试图运行一个UItesting,当他们失败时,他们会得到一个警告,popup一个错误消息(可能是一个不同的消息,取决于哪些字段是无效的,以什么方式)。 我想要testing的不仅仅是一个警报出现,而是显示正确的信息。 我遇到的问题是,我需要获取本地化的文本进行比较(如果我运行testing在另一种语言以外的英语),但是当我调用UITest中的NSLocalizedString它不能收集正确的本地化string(只是返回关键[默认]) 我已经尝试添加localizeable.strings文件到UITest目标,但无济于事。 有谁知道这是可能的吗? 编辑作为旁注:我也尝试在UIAlertView上设置辅助function标识符,但是当我使用该辅助function标识符查询它不存在时,我只能使用看起来倒退的警报标题来查询它。

在Xcode UItesting期间检查电子邮件?

更新: 用Xcode的UI testing的新方式,这仍然是可能的吗? 我可以通过iOS UI Automation脚本以编程方式访问我的电子邮件吗? 我想访问我的iPhone应用程序通过电子邮件发送给我的电子邮件帐户的注册码。