Xcode 3.2中的SenTestCase和XCBuildLogCommandInvocationSection错误

时间:2010-08-18 21:12:45

标签: iphone objective-c cocoa-touch

我有一组SenTestCase导致XCode 3.2.4出现问题。尝试编译时(使用非常基本的STFail(@“”);)会发生以下编译器错误:

  

处理命令输出时发生内部错误: -
  [XCBuildLogCommandInvocationSectionRecorder endMarker]:
  无法识别的选择器发送到实例

     

处理命令输出时发生内部错误: -
  [XCBuildLogCommandInvocationSection setTestsPassedString:]:
  无法识别的选择器发送到实例

我已经包含了来自'/ Developer / Library / Frameworks'的SenTestkingKit.framework,并且刚刚由'Targets>创建了目标添加>新目标> Cocoa Touch>单元测试包'。有任何想法吗?谢谢!

5 个答案:

答案 0 :(得分:21)

这似乎是回归,报告代码的某些部分不遵守时区问题。输出在开始之前被标记为结束,因此非常困惑并且窒息。

我在Google上找到的一个解决方法是更改​​目标的“运行脚本”阶段。

更改

"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests" 

"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests" 1> /tmp/RunUnitTests.out 

它正在解决这个问题,而不是解决它,但确实有效。

答案 1 :(得分:4)

开发iPad应用时遇到了同样的问题。尝试将测试目标的Base SDK从iPhone Device 3.2更改为iPhone Device 4.0。

答案 2 :(得分:2)

我遇到了与xcode 3.2.3和iPad相同的问题。 这个帮助我解决它:

Project -> Edit Project Settings -> Build -> Base SDK = iPhone Device 4.0
Project -> Edit Project Settings -> Build -> iPhone OS Deployment Target = iPhone OS 3.2

答案 3 :(得分:2)

我有同样的问题,在另一个问题中讨论了这个话题  Problem doing logic tests after XCode 3.2.4 upgrade

补丁文件发布在github上。这有助于我解决它  http://gist.github.com/586296

答案 4 :(得分:-1)

这似乎是在4.2 SDK中修复的(最后!)。