Tag: xcode ui testing

如何获得iOS UITest上pickerWheels的所有可能值?

我在我的应用程序上有一个UIPickerView,有一个值列表,我们可以使用颜色。 选取器只有一个轮子,我设法使用这个代码来select值: let app = XCUIApplication() app.launch() app.pickerWheels.element.adjustToPickerWheelValue("Yellow") 但是我想要做的是在一个数组中获得这个轮子的所有可能的值,所以我可以使用数组值在select器中进行select。 另一个好的解决scheme是按索引而不是按键进行select,但我找不到方法。 有人?

iOS – 从发布版本中排除testing文件

在开发iOS应用程序时,我需要在预加载的数据库上运行unit&uitesting。 所以,我打算只包含在应用程序中预加载的数据库文件进行DEBUG构build,因为UI /unit testing只能用DEBUG构build运行。 我怎样才能从发布版本中排除数据库文件? 目前我可以检测主机应用程序是否运行testing或不使用以下方式, https://stackoverflow.com/a/33466038/1084174 , 但是如何使用这种技术排除和包含database.db呢? 一点指导将真正赞赏。

Swift XCUIstring断言失败

我正在使用xcode 8.3.3并编写一个XCUItesting。 我有以下几点: let address = XCUIApplication().buttons["URL"].value as! String let address = XCUIApplication().buttons["URL"].value as! String 看debugging器,我可以看到的价值是: 如果我设置expectedURL = "\u{e2}auth.int….net"那么它返回: 如果我设置expectedURL = "auth.int….net"然后它返回: 我怎样才能使testing断言find两个string是平等的? 尝试了以下,但它并不取代“\ u {e2}”: let address = value.components(separatedBy: ",").first!.replacingOccurrences(of: "\u{e2}", with: "") 而且(但它不会取代“\ u {e2}”): let range = Range<String.Index>(uncheckedBounds: (lower: address.startIndex, upper: address.endIndex)) let strippedAddress = address.replacingOccurrences(of:"\\u{e2}", with: "", options: .literal, range: range) […]

如何在UITests的`tableViewCell`中访问`detailTextLabel`?

我想检查是否有一个tableViewCell.detailTextLabel与我的UITest中给定的string。 问题是,当我searchapp.tables.cells.children(matching: .staticText)它只会查找标签是tableViewCell.textLabel 。 关于如何查询detailTextLabel任何想法?

Xcode UItesting – 通过id在Webview中查找元素

我们的应用程序是混合的,包含webview。 我试图使用Xcode UItesting来自动化我们的应用程序。 我能够find网页button使用: let app = XCUIApplication() app.launch() let button = app.staticTexts["Button's text"] 但是在我们的一个testing中,我们testing了本地化 – 这意味着文本的变化和静态的文本查询不再有效。 找不到任何文档如何通过他的id(甚至是类名)find一个元素。 有任何想法吗?

如何在UITests下重新排列单元格?

随着UITests和UITableView我需要重新排列单元格。 可能吗? 我试过myTable.swipeDown()但是它在没有响应重新sorting的单元格的地方被调用。 我怎样才能做到这一点? 有没有可能?

Cocoapods没有正确连接第三,第四个目标(Xcode 7 beta 6)

我遇到了Cocoapods和Xcode 7 beta 6的问题:我有一个包含三个不同testing目标(testing,UITests,IntegrationTests)的项目。 我的豆荚似乎在第一个目标(“testing”)上工作得很好,但是其他目标有问题: 如果我没有引用后两个目标中的任何一个Cocoapods,那么一切都会好起来的。 但是,当我尝试使用其中一个容器(本例中为XCGLogger)时,出现链接器错误。 我检查了构build阶段,发现两个目标都缺lessEmbed Pods Frameworks ,所以我手动添加了它。 这样做和清理后,删除派生的数据,问题依然存在。 附上屏幕截图,显示链接器错误。 如果我尝试在后两个目标中使用XCGLogger,只会发生这种情况。 它在第一个目标中工作正常。 只是要彻底…这里是我正在使用的Podfile: platform :ios, "8.0" use_frameworks! target 'Glimpulse' do pod "SwiftSpinner", :git => 'https://github.com/zbeckman/SwiftSpinner.git' pod 'XCGLogger', :git => 'https://github.com/DaveWoodCom/XCGLogger.git', :branch => 'swift_2.0' pod 'GRValidation', '~> 0.2' end target 'GlimpulseTests' do pod "SwiftSpinner", :git => 'https://github.com/zbeckman/SwiftSpinner.git' pod 'XCGLogger', :git => 'https://github.com/DaveWoodCom/XCGLogger.git', :branch […]

Xcode 7.3.1 UITests代码覆盖率始终为0%

除了主应用程序之外,我的项目中还有两个unit testing和UItesting目标。 这两个目标有单独的scheme,以便我可以分别在我的CI服务器上运行它们。 我在这两个scheme中检查“收集代码覆盖率”。 最初我通过使用“Cmd + U”分别构build和运行这两个scheme,并确保所有这些scheme都正确显示覆盖率数据,从而确保XCode中的所有内容都能正常工作。 在我的Jenkins CI中,我使用fastlane为这两个scheme分开工作,unit testingscheme工作正常并生成报告。 但是UItesting计划总是显示0%的覆盖率报告。 我不知道什么是做错了。 某处我阅读UItesting依赖于unit testing为了代码覆盖,是真的吗? 如果这是真的,那么我应该运行unit testing在执行UItesting之前? 提前致谢。

Xcode UItesting允许系统警报系列

我有问题,如果我尝试允许系列系统警报,工作只有一次,下一个警报不“允许”我googling更多的时间,并了解该职位:( Xcode 7 UItesting:如何解雇一系列系统警报代码 )没有..不工作。 在这里,我目前的代码,首先警报“允许”成功,未检测到下一个警报。 XCUIApplication *app = [[XCUIApplication alloc] init]; app.launchEnvironment = @{ @"isUITest" : @YES, @"withFakeData" : fakeData }; [app launch]; for (int i = 1; i <= self.possibleSystemAlerts; i++) { NSLog(@"%d", i); XCTestExpectation *expectation = [self expectationWithDescription:@"High Expectations"]; id monitor = [self addUIInterruptionMonitorWithDescription:@"Push notifications" handler:^BOOL(XCUIElement *_Nonnull interruptingElement) { XCUIElement *element = […]

Xcode UItestingUIKeyInput typeText

在Xcode UItesting期间,如何为符合UIKeyInput的UIView UIKeyInput ? 我创build了一个符合UIKeyInput 。 当我logging自己手动input代码时, Xcode写入app.typeText("1234") 。 但是,当我试图回放,我得到错误的UItesting失败 – 既不是元素,也没有任何后裔有键盘焦点 。 而且,这个问题的解决办法都没有奏效。