使用 google toolbox for mac 编译单元测试时出错

Posted

技术标签:

【中文标题】使用 google toolbox for mac 编译单元测试时出错【英文标题】:Error compiling for unit test using google toolbox for mac 【发布时间】:2010-10-18 19:38:49 【问题描述】:

您好,我的应用程序运行良好,但是当我尝试运行单元测试时出现此错误...

2010-10-19 00:27:49.919 AssignmentUnitTest[27988:903] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 
'*** -[NSURL initFileURLWithPath:]: nil string parameter'

具有讽刺意味的是,我已经搜索了整个项目,但没有任何类似的代码行使用 **[NSURL initFileURLWithPath:]**

我几乎浪费了半天的时间,但没有任何成功。

我在项目中使用 coredata,下面是带有堆栈跟踪的屏幕截图。

谁能指导我正确的方向。

谢谢

**编辑:**解决这个问题的方法是不仅要添加 .xcdatamodel 文件,还要添加根文件 .xcdatamodeld。 Core Data 无法找到我的模型,因此显示此错误。希望有一天它对某人有所帮助。

【问题讨论】:

【参考方案1】:

阅读屏幕截图中的调用堆栈。它说您的managedObjectModel 方法发送了[NSURL fileURLWithPath:]那个 调用了initFileURLWithPath:。因此,找到您发送 [NSURL fileURLWithPath:] 的位置并将您的论点修正为该消息。

您传递的参数无效表明您传递了nil 作为路径(也许您试图在您的包中找到该文件但它不存在或与您查找的名称不同),或者您传递了一个指向不是字符串的对象的指针(也许你有一个字符串但保留不足,并且在它的位置创建了一个不同的对象)。

【讨论】:

感谢 Peter,您已成为我的救星……通过您的 cmets,我意识到我的单元测试目标无法找到我的数据模型。我之前已将 .xcdatamodel 文件添加到单元测试目标中,因此我将其删除并添加了根文件 .xcdatamodeld & 现在单元测试开始正常工作...【参考方案2】:

SDK 的某些版本中存在一个错误,该错误会破坏模拟器中的异常处理。

您可以在设备上运行测试吗?

【讨论】:

我有一部 iPhone 3G,但我还没有将它升级到 ios 4.x。所以目前无法在设备上运行...并且我的配置文件已过时...

以上是关于使用 google toolbox for mac 编译单元测试时出错的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 中调用 Google Toolbox for Mac NSString 类别方法时无法识别的选择器

google-toolbox-for-mac iphone 单元测试:1073 中止陷阱 mkdir "$CFFIXED_USER_HOME" 命令 /bin/sh 失败,退出代码

NSSetUncaughtExceptionHandler 无法捕获 iPhone 上的所有错误

使用docker toolbox 在windows上搭建统一环境

使用 Google 工具箱 for Mac OAuth for Google App Engine

安装Docker-解决官网下载特别慢的问题