首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

打印XCUIApplication().debugDescription的输出导致UIAutomated测试XCode 8崩溃

打印XCUIApplication().debugDescription的输出导致UIAutomated测试XCode 8崩溃的原因是由于XCode 8在处理debugDescription时存在一个bug,导致在某些情况下会引发崩溃。具体来说,XCUIApplication()是XCode提供的一个类,用于表示应用程序的界面。debugDescription是该类的一个方法,用于打印出应用程序界面的描述信息。

在UIAutomated测试中,我们可能会使用debugDescription方法来查看应用程序界面的结构和属性,以便进行调试和测试。然而,由于XCode 8的bug,当我们尝试打印XCUIApplication().debugDescription的输出时,会导致测试崩溃。

为了解决这个问题,我们可以采取以下措施:

  1. 避免使用debugDescription方法:在测试中,尽量避免使用debugDescription方法来打印XCUIApplication()的输出。可以使用其他方法或工具来查看应用程序界面的结构和属性,例如使用XCode提供的视图调试器或其他第三方工具。
  2. 更新到最新版本的XCode:如果可能的话,尝试将XCode升级到最新版本。新版本的XCode可能已经修复了这个bug,从而避免了测试崩溃的问题。
  3. 提交bug报告给苹果官方:如果遇到了这个问题,并且升级XCode也无法解决,可以考虑向苹果官方提交bug报告。提供详细的复现步骤和相关信息,帮助他们更好地理解和解决这个问题。

总结起来,打印XCUIApplication().debugDescription的输出导致UIAutomated测试XCode 8崩溃是由于XCode 8存在的一个bug引起的。为了解决这个问题,我们可以避免使用debugDescription方法,尝试升级XCode到最新版本,或者向苹果官方提交bug报告。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS单元测试那些事儿

Xcode提供了完整单元测试功能,系统预置单元测试类和断言也非常方便开发者编写测试代码。除了函数功能测试,性能测试外,也支持进行UI上单元测试。...此方法只要有明确输入就会有明确输出,非常适合用来做单元测试。...下面,我们可以执行下此测试类,在Xcode测试导航中点击此测试类右边执行按钮即可: 每个测试方法结果会在右侧展示,绿对号表示此测试用例通过。...我们通过输入来设置测试用例初始状态,通过对输出结果判定来决定测试用例是否通过。 3. 在开发中,编写函数要尽量符合下面的特性:功能单一,有输入有输出。 4....虽然页面元素查找和定位非常繁琐,幸运Xcode提供了用户行为录制功能,我们可以将要测试操作路径录制下来,点击Xcode的如下按钮即可: 录制完成后,此测试用例中会自动生成查找元素和操作相关代码

1.1K20
  • iOS description与debugDescription在调试程序中应用

    iOS 中打印函数description与debugDescription应用 一、description和debugDescription是什么         description和debugDescription...我们先来看声明部分代码: + (NSString *)description; + (NSString *)debugDescription; 这里返回字符串就是我们打印在控制台显示信息。...二、NSObject基类中description方法是如何实现 我们写如下测试代码:  NSObject * objc = [[NSObject alloc]init];  NSLog(@"objc...:%@",objc); 控制台输出信息如下: ?...description是我们在程序中打Log会调用方法,debugDescription则是我们在断点调试时,在控制台使用po命令打印会调用方法,比如我们重写Test类这个方法: -(NSString

    1.4K10

    iOS UI 自动化测试原理以及在 Trip.com 应用实践

    Xcode 项目创建 UITests Target 并运行测试,其编译产物 Test App 本质上是一个 Deamon 守护进程,该进程有独立应用程序生命周期,依靠 XCUIApplication...录制交互行为自动生成测试 case 对于相对复杂 Test Case,可以通过 Xcode 提供测试行为录制功能进行自动代码生成。...但与此同时,又有新问题出现,那就是业务频繁迭代情况下,我们写 Test Case 脚本,很容易因为业务改变而导致废弃,测试脚本复用率低,又增加了开发成本。...探索测试收集 Crash 问题,会收集崩溃调用栈整理成表格,分配给相关研发同学,推动产线修改相关问题代码。...://devstreaming-cdn.apple.com/videos/wwdc/2015/406o0doszwo8r15m/406/406_ui_testing_in_xcode.pdf?

    2.2K40

    译文: iOS Unit Testing and UI Testing Tutorial

    Version: Swift 3,iOS 10,Xcode 8 很多开发者觉得写测试没什么卵用,但是,如果没有「测试」,你原本牛逼闪闪app,很容易变成一坨翔,所以,「测试」是必不可少。...当然,外部数据和并发问题(concurrency issues)可能偶尔导致测试结果会不一样。...在then部分,assert(断言)所期望结果(在这个例子,gameUnderTest.scoreRound是100 - 5),如果测试结果失败,打印一条消息。 点击菱形按钮跑测试。...测试跑起来;正常来说是没问题。 UI Testing in Xcode Xcode 7开始有了UI 测试,可以创建一个「UI 测试」记录和UI交互。...image 把所有测试都跑起来(Command-U),然后打开reports navigator(Command-8)。

    1.4K30

    iOS 面试策略之经验之谈- App测试和上架

    比如 App 在运行时占用了手机大量内存,此时App就会崩溃。经常发生在低配或内存容量很少手机。这个问题可以通过 Xcode Instruments 调试判断出来。 网络原因。...当网络不佳时,App 请求得不到即时响应而导致超时;或是用户数量太多,服务器端过载而影响到手机端崩溃。其实这些都可以在优化服务器端配置和处理手机端异常中改进用户体验。 第三方。...开发中使用了第三方工具有可能有病毒或是 bug。另外广告弹出也可能很阻塞线程或侵占内存,导致 App 崩溃。 一般解决 App 崩溃方式是检查对应机器日志。...UI测试能覆盖到单元测试都无法覆盖到部分,例如: 在给定输入时,输出通过了单元测试;但实际上输出格式并不满足要求,在屏幕上也会因为尺寸问题被缩进。这时就需要 UI 测试来检查。...注意测试覆盖率一般以运行完所有单元、性能、UI 测试之后数据为准。 App Store相关 8.什么是 iOS 中 App ID?

    1.2K40

    扒虫篇-Debug几个实用方法

    2, po (print object)输出对象, 如 po [self view]; (相当于普通NSLog) 3, expr (expression) 可以在调试时动态执行指定表达式,并将结果打印出来...通过一个简单公式,可以将进程中内存空间映射到“影子内存区”中,即:每8字节正常内存块映射到一个字节影子内存上。在影子内存上,会跟踪这8字节“中毒状态”。...如果进程定义了信号处理函数,那么它将被执行,否则就执行默认处理函数。 在iOS中就是未被捕获Objective-C异常(NSException),导致程序向自身发送了SIGABRT信号而崩溃。...六.Instruments检查器 提起检查器,我们有时会忽略Xcode本身自带显示CPU,内存,网络测试界面的使用,尤其是对流量统计是比较实用。 ?...Instruments是一个强大而灵活性能分析和测试工具,它是Xcode工具集一部分。它旨在帮助您分析您OS X和iOS应用程序,过程和设备,以便更好地了解和优化其行为和性能。

    1.5K10

    JSONEncoder 基础类型编码失败解决方法

    JSONEncoder 在 Swift 中还是非常常用,最近项目中有需要将APP数据转换为JSON格式之后,再发送给服务器需求,测试过程中,然后报了如下错误: invalidValue(Optional...let data = try JSONEncoder().encode(self) modelJson = String(data: data, encoding: .utf8)...不管我传递 model 是 1 还是 "1" 或者是 一个 User, 代码跑起来打印如下: encoded json: 1 encoded json: {"name":"韦弦zhy","age":18...", underlyingError: nil)) json error encoded json: {"name":"韦弦zhy","age":18} 后续测试发现:只有类似 User 这样结构体或类才能正常编码...有人找到望同步一下 最终,为了代码能够正常运行,改了一下扩展方法, 经过测试,已经可以表现正常,因为不知道具体生效版本(万一是12.x呢),所以判断写在了抛出异常地方,否则可以写在encode之前:

    80110

    iOS开发——解析崩溃日志

    在实际开发过程中,作为开发者我们常常会碰到一种场景,那就是真机调试时崩溃了,而有时又不能在Xcode打印崩溃信息,那么这时候我们就必须要获取到崩溃原因,从而解决问题。...而在万能Xcode中,你可以找到自己测试机里崩溃日志。Window -> Devices -> 选中自己测试机 View Device Logs ,类似下图 ?...而此时你可以选择导出自己崩溃日志,并且这里我们看到崩溃日志,都是Xcode已经帮我们符号化,很清晰就可以看到崩溃原因,以及崩溃位置。...依旧是万能Xcode给我们提供了一个工具 —— symbolicatecrash,这是一个Xcode自带分析工具,可以通过机器上崩溃日志和应用.dSYM文件定位发生崩溃位置,把Crash日志中一堆地址替换成代码相应位置...处理结果是生成一个新文件symbol.crash。然后打开这个文件。 你就会看到日志跟我们调试APP控制台输出内容一样了! 天书变成了可以看懂崩溃记录,攻城狮们,赶紧改Bug吧。

    1.4K30

    实践-小细节Ⅳ

    真机调试控制台不打印输出NSLog内容 以下设置可以解决 iOS8控制台打印很多乱码问题,但是同时也使真机调试时控制台没有打印输出。...Paste_Image.png 8.关于代理协议一些细节 协议可以继承其他协议,并且可以继承多个协议,在iOS中对象是不支持多继承,而协议可以多继承。..., UITextFieldDelegate> @end 无论是@optional还是@required,在委托方调用代理方法时都需要做一个判断,判断代理是否实现当前方法,否则会导致崩溃。...示例: // 判断代理对象是否实现这个方法,没有实现会导致崩溃 if ([self.delegate respondsToSelector:@selector(userLoginWithUsername...第二个方法使用默认模式(NSDefaultRunLoopMode)。 主线程就马上执行 ~~。 10.在模拟器上UITextFeld中输入 _ “确定“后就会崩溃。真机上不会崩溃

    80610

    如何解决XcodeSIGABRT错误

    从本质上讲,这意味着您应用已崩溃… 这是Xcode样子: 在屏幕截图中,您会看到一些东西: 在左侧,您可以看到应用崩溃时运行线程列表。您会看到导致崩溃线程是主线程或“线程1”。...检查堆栈跟踪 在许多情况下,Xcode不会向您显示SIGABRT崩溃任何有用错误消息。发生这种情况时,了解一些调试命令很有用,例如bt。 Xcode具有称为LLDB集成调试环境。...这是您应用程序运行时在Xcode底部,控制台或调试输出区域中看到内容。您经常在这里看到调试消息,但是您知道也可以使用它来输入命令吗? 下次您应用崩溃时,请尝试输入helpLLDB。...在这里,检查典型索引超出范围错误堆栈跟踪。在下面的屏幕截图中,我们故意99从仅包含4个项目的数组中获取索引,从而导致了该错误。当应用崩溃时,bt可以告诉我们哪一行代码导致了错误。...3] = "Trillian" } 要打印复杂对象,请使用po。

    6.1K20

    iOS 崩溃排查技巧:如何获取系统库源码

    作者:酷酷哀殿 APP 崩溃导致用户体验下降,严重时甚至会导致用户卸载 APP。我希望从实际问题中去分享一些我日常工作上小技巧,希望可以帮助到大家。...今天要分享是「如何获取系统库源码」,问题源自于一位朋友遇到了一个系统库相关 crash,一直无法定位到具体原因,所以想了解一下「如何根据 iOS 崩溃日志获取对应系统库源码」,正好我之前也遇到过类似的问题...如下,我们从官方文档 Examining the Fields in a Crash Report 截取部分标准崩溃日志进行讲解。...3、通过 llvm-objdump 命令打印该二进制文件相关二进制库信息 llvm-objdump -m --dylibs-used ....所以,我们只能下载到 syslog-377.40.1.tar.gz 总结 本文分享了两种特殊技巧定位崩溃日志对应源码。 如果有读者发现了其它方案,欢迎加入我们微信群,一起参与讨论。

    1.4K10

    iOS如何获取崩溃日志

    前言 在日常测试iOS中会经常遇到App崩溃情况,然后给研发提bug。如果就提bug就有一两句话描述,研发很难精准排查问题,所以作为测试人员需要提供崩溃日志或者崩溃堆栈辅助研发排查问题。...libimobiledevice工具 可能有些同学电脑并没有安装Xcode工具,Xcode安装下载和安装比较麻烦。这里介绍一种使用第三方工具libimobiledevice方法。...idevicesyslog 查看当前电脑连接设备 idevice_id --list 打印出来是udid 屏幕截屏 idevicescreenshot 获取设备时间 idevicedate.../LuoJiFMIOS.app.dSYM 崩溃日志 用idevicecrashreport工具导出,或者用xcode查看 symbolicatecarsh symbolicatecarsh是xcode...85CC-AD93B3C9F5D8 Sleep/Wake UUID: E387E09E-8D4A-413B-B96F-01861A8A0708 Time Awake Since Boot

    3.2K20

    iOS代码调试之LLDB命令

    对于测试同学来说,学习iOS代码调试LLDB命令,能更好地辅助我们通过各种手段如修改变量返回值创造实际难以模拟环境进行测试,甚至能协助开发同学定位bug。...p 和 po 区别在于使用 po 只会输出对应值,而 p 则会返回值类型以及命令结果引用名。 用法如下: ?...它能够在调试时,动态修改变量值,同时打印出结果,在调试想要让应用执行异常路径(如执行某else情况)或者修改某些中间变量值如(如修改返回状态码以查看客户端相关响应等)非常有用,可以创造各种实际中难以遇到测试环境辅助测试...expression命令是动态修改变量值,Xcode还支持动态调用函数。在控制台执行call命令,可以在不修改代码,不重新编译情况下,在断点调用某个方法,并输出此方法返回值。...image lookup --address+地址 该命令用于查找可执行文件或共享库原始地址,当遇到程序崩溃时,可以使用这条命令来根据崩溃日志原始地址查找崩溃所在具体位置。 ?

    1.8K20

    最基本调试是NSLog及DEBUG预处理器宏

    控制台输出可以出现在许多地方,包括(但不限于)Xcode和控制台应用程序,参考有关从您应用程序调用NSLog找到控制台输出更多信息,请参见技术Q&A QA1747:调试部署iOS应用 如何调用NSLog....如果关心和关注不能采取措施,确保格式字符串内容匹配起来,其余参数,您应用程序可能会崩溃(或者,至少是,它将输出不可用数据到控制台) 像printf函数,使用NSLog标记替换: 然而,出现在...(或签定任何大小无符号整数或浮点数 - 8,16,32或64位),并且将任何必要强制类型转换为你而不会产生任何编译器警告 谁正在被调用 分析应用程序操作是至关重要,你可以知道那些程序那些功能被顺序调用...记录你堆栈信息 当检查崩溃日志,在堆栈中是非常宝贵找出导致任何特定情况下连锁事件。...NSLog需要时间去执行,如果你在你应用程序里面加了很多这样代码,将加大你程序运行时间。在测试过程中,这通常不是问题。

    1.4K30

    Xcode 调试技巧 --常用命令和断点

    Xcode调试技巧与我们日常开发息息相关,而这些调试技巧在我们解决Bug时,常常有事半功倍作用,经常会用到有各种断点 和 命令。...而这些调试技巧也经常会在面试中问到,所以不知道就来看看吧。 ? 调试主要观看区 调试命令 在上图中,右侧绿色区域就是Log 输出区,在 Log 输出区可以使用一些命令,来辅助调试。..., Xcode 还支持动态调用函数。...4.异常断点 如果程序运行就崩溃,我们可以打一个异常断点,这样崩溃时就会触发断点,很容易定位到问题所在,也能看到更多崩溃相关信息,如Log,函数调用栈。 ? 异常断点 ?...可以修改异常断点条件 注意: 有的程序或者有的功能可能会使用异常来组织程序逻辑,比如调用AVAudioPlayer ,运行到 AVAudioPlayer 时,就会导致断点被触发。

    3.1K40

    【IOS开发进阶系列】IOS常用开发技巧专题

    /Volumes/Xcode/Xcode.app /Applications/Xcode.app 2     调试技巧 2.1     日志打印类 2.1.1 让Xcode控制台支持LLDB类型打印...,strModelName, strErrorLevel, strFormat); } 控制台测试输出结果: 2013-03-07 16:37:17.583 WriteLog[419:207] ModalName...recursiveDescription     在ios8以前,我们想要进行ui实时调试,可以依赖技术手段有:      1、用xcode启动app,然后点击xcode暂停运行按钮,然后在调试控制台输入下面语句...>> 2.3.2 ios8/xcode6中Debug View Hierarchy功能         在ios8/xcode6以后,苹果引入了新技术手段支持我们进行实时ui调试;使用xcode运行app...这时定位崩溃原因将非常困难,因为出问题对象已经重新分配了。一个解决方法就是要求Xcode将对象设置为“僵尸”,而不是重新分配。

    43340

    解决 Flutter 引起 iOS 内存崩溃问题

    有的则是申请内存失败,导致后续逻辑错误崩溃。 结合「处处开花,多点爆破」情况来看,应该是某种偏底层内存管理问题。这就有点挠头了,因为这个版本并没有做什么内存相关改动。...中做了什么改动,导致了内存崩溃问题。...分析问题 根据用户反馈,我们发现了一个必现内存崩溃操作路径,于是我尝试在 Flutter 2.5.3 版本和 2.10.5 版本各自测试了一下内存情况: 对比内存情况可以得出一个结论:升级前内存容忍度更高...原本是想等待方案一,但是随着后台用户反馈越来越多,解决内存导致崩溃已经刻不容缓了,我们决定采取方案二。 客户投诉是第一生产力? 于是我这个一行 Flutter 代码都没写过的人,就硬着头皮上了。...: 应用成功运行了起来,并且输出了我们自定义信息。

    1.6K10
    领券