在XCode 3.2.4升级后进行逻辑测试时出现问题

时间:2010-09-10 21:03:40

标签: iphone unit-testing xcode ios4 ios

最近升级到XCode 3.2.4和iOS SDK 4.1导致我的单元测试不再适用于我的iOS项目。该项目目前仅在模拟器上运行,而不是真正的硬件。

我试图创建一个新的空白项目,其中添加了一个总是会通过的虚拟测试用例,但它也不起作用,给我这个结果:

  

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

是否有其他人在使用XCode 3.2.4和iOS SDK 4.1时遇到测试用例问题?

3 个答案:

答案 0 :(得分:4)

该问题的解决方法发布在Apple的开发者论坛中。它在我的项目中工作正常。访问该网站并试一试。

答案 1 :(得分:4)

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

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

更改

"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests" 

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

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

答案 2 :(得分:2)

我建议你解决问题是考虑使用GHUnit。它适用于您现有的SenTestCase类,但它也有一组测试类/断言。您只需设置一个新目标并指向其驱动程序类。您将获得一个功能齐全的测试工具,可以在模拟器和真实设备上运行测试。我发现它比设置测试包更容易,更强大,并且必须管理所有这些。

http://github.com/gabriel/gh-unit