4

所以我有一些通过 Xcode 3.1 / Leopard 的单元测试。这些在 iPhone 应用程序项目中使用 SenTestingKit,并在单独的“测试”目标中构建/运行。我刚刚在 Snow Leopard 上升级到 Xcode 3.2 并且测试似乎正在运行(我在 Console.app 中获取日志并看到它们通过),但是 Xcode 沙滩球并且必须在它们运行后强制退出。Console.app 显示来自 Xcode 的以下错误,即使测试目标中不包含测试用例也会出现:

Xcode[1734] -[XCBuildLogCommandInvocationSection setTestsPassedString:]:
                unrecognized selector sent to instance 0x20104db60

Xcode[1734] -runOperationInBackground raised an exception: 
                 -[XCBuildLogCommandInvocationSection setTestsPassedString:]:
                 unrecognized selector sent to instance 0x20104db60

我已经清理和重建无济于事,而且我似乎无法通过搜索找到关于这个主题的任何内容(尽管似乎有人有同样的问题)。

更新:我已将此错误报告为 Apple 错误 #7214051。

4

6 回答 6

7

我还为此提交了一份错误报告,7210948。Apple 仍然没有回应,这令人沮丧。

--

更新:

Apple 开发者论坛上的一位用户发布了一个解决方法 -

我们最近发现了这个问题的根本原因。

受影响的人可以通过(我希望你已经为此做好准备)来解决它......

...将您的 Build 机器上的时区更改为远离中央夏令时。(六周后你可以把它改回来,Mountain Standard TIME 的人会受到影响。)

不,认真的。试试看。

消息被编辑:cde at 3:34 PM

于 2009-09-18T22:11:11.070 回答
2

听起来像腐败;也许你的 Xcode 安装不好,或者当你安装 Snow Leopard 时有些东西被水洗了。

或者也许你的项目以某种方式被冲洗掉了。

如果您可以使用另一台 Snow Leopard 机器,请在那里进行测试。如果它仍然崩溃,请通过http://bugreport.apple.com/提交错误

于 2009-09-02T02:58:24.040 回答
1

我也遇到同样的事情。在我无法运行 mu 旧项目(在 leopard 和 Xcode 3.1 中开发)后,我尝试在 Xcode 3.2 中创建一个新项目并添加了一个新的单元测试目标,添加了新文件和一个虚拟案例,Xcode 再次挂起...... .别无选择,我只好强行退出。

于 2009-09-03T05:31:49.627 回答
1

每个链接http://www.artin.org/geekblog/2009/09/xcode-snow-leopard-logical-unit-tests-hanging/

将您的时区更改为 PST 可以解决此问题。

有趣的是,我在我的 macbook pro 上遇到了这个问题,但在我的 mac pro 上没有。

于 2010-02-03T16:06:41.387 回答
1

另一个需要注意的问题(尽管可以说不是 OP 的问题)是如果您的单元测试包托管在测试平台(您的应用程序)中并且它们是应用程序初始化的问题,您的测试将挂起。

有一个 rdar : rdar://7333645 这表明不初始化 NSApplicationMain

对此的诊断是进行构建。如果挂起,请停止构建。

手动尝试执行应用程序(Cmd-Option-R 或 Cmd-Option-Y) - 如果您的应用程序没有出现,请检查控制台。

于 2010-02-25T04:01:44.457 回答
0

Apple 在此处发布了一个解决方法文件和一个演示测试项目: https ://developer.apple.com/library/ios/#samplecode/iPhoneUnitTests/Introduction/Intro.html

只需将: Xcode324iOS41TestSuiteWorkaround.m 添加到您的测试目标,一切都会神奇地工作:)

于 2010-11-21T13:19:55.750 回答