iPhone 单元测试挂起;无法调用-applicationDidFinishLaunching :

标签 iphone unit-testing ocunit

我为使用 Google Toolkit for Mac 构建的 iPhone 项目设置了单元测试OCUnit 之上的框架。我有一个名为“单元测试”的依赖项目,它根据需要构建并运行测试。

但后来一切都停止了,我无法理解原因。突然,我的“单元测试”可执行文件启动并坐在那里,永远等待。它永远不会到达应用程序委托(delegate)的 -applicationDidFinishLaunching: 方法,该方法调用实际的单元测试。将 NSLog 插入委托(delegate)的 -init 方法中告诉我该方法被调用,但应用程序永远不会“完成”启动。

如果我修改运行“单元测试”可执行文件的 shell 脚本并取出 -RegisterForSystemEvents 参数,则可执行文件立即存在(它不运行测试)并给出以下消息:

Terminating since there is no system event server.
(Run the EventPump or pass the argument "-RegisterForSystemEvents" if you want to run without SpringBoard.

由于当我删除该参数时它会终止,因此我很好奇该参数到底是做什么的以及如何做的,因为它似乎会导致挂起。但由于没有它就无法运行任何测试,我需要确定如何让它再次工作。但是,Google 没有提供与当前情况相关的任何内容的链接,并且开发文档中没有任何内容有帮助。

有什么想法吗?

最佳答案

如果 Xcode 在构建过程中挂起(构建结果窗口显示“正在运行自定义 shell 脚本”,但在那里停止),请选择单元测试目标并单击“获取信息”。然后选择“属性”选项卡并清除“主 Nib 文件”文本字段并清理目标。

点击“Build and Go”现在应该可以成功运行测试。

关于iPhone 单元测试挂起;无法调用-applicationDidFinishLaunching :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/531561/

相关文章:

ios - iOS 上每个选项的带有图像的操作表

java - Apple MDM 供应商 CSR 签名

ios - EXC_BAD_ACCESS 仅在测试期间使用 ARC

iphone - 如何在 Objective-C 中创建全局函数

iphone - mobileNetworkCode 返回 "VZW"而不是数字移动网络代码

python - 模拟 pyodbc 模块调用 Django 单元测试

c# - 在单元测试中链接 resx 文件

c++ - Boost 单元测试和 Visual Studio 2005/Visual C++ 以及 BOOST_AUTO_TEST_SUITE(stringtest) 命名空间?

objective-c - 如何验证部分模拟是否具有使用ocmock的args调用的基本方法?

objective-c - XCTAssertEqual 错误 : ("3") is not equal to ("3")