单元测试失败,然后没有

时间:2012-09-22 17:47:15

标签: objective-c xcode ocunit

在经历了一些严重的挫折和头痛之后,我设法将单元测试添加到现有项目中。问题是,测试只能在50%的时间内执行。我有一个带有STFail宏的测试方法,当我运行测试时,它会像我期望的那样失败。然后,我再次运行测试而不触及任何代码/设置,它将通过而不会在测试夹具中击中断点。发生这种情况时,控制台会打印出此输出:

无法找到... octest的测试包的可执行文件。

我有一个谷歌,但似乎没有很多/任何人有这个确切的问题,关于这个问题的其他讨论正在我的头上。如果有人能够对这个问题有所了解,那将非常感激。

感谢。

1 个答案:

答案 0 :(得分:3)

我接受了你的新项目并重现了这个问题。有许多问题,一个未知:

构建测试目标的阶段:

  • 目标依赖项:指定TestApp,以便始终首先构建主目标。
  • 编译来源:不包括任何主要来源。仅包含TestAppUnitTests.mm
  • 使用库链接二进制文件:唯一需要的是SenTestingKit.framework。我们可以投入基金会和UIKit作为衡量标准。
  • 复制捆绑资源:应该什么都没有。 (稍后,您可能需要特定于测试的资源。)

构建测试目标的设置:

  • Bundle Loader应为$(BUILT_PRODUCTS_DIR)/TestApp.app/TestApp
  • 测试主机应为$(BUNDLE_LOADER)

主要目标方案:

  • 测试 - >信息应指定测试目标

但是,即使我做了所有这些更改,您的项目仍然有奇怪的行为。模拟器有时会获得一个名为$ {PRODUCT_NAME}的应用版本。即使调试应用程序,有时也会在Log Navigator中显示“Debug $ {EXECUTABLE_NAME}”。所以别的东西是错的,我不知道是什么。

最佳解决方案是从头开始创建一个新项目,指定“包含单元测试”。我已经确认这是有效的。