在使用otest进行调试时,如何将可执行文件链接到测试包?

时间:2009-08-25 00:07:17

标签: unit-testing xcode ocunit octest

我正在使用Chris Hanson优秀的Xcode单元测试指南。

我的程序是一个(命令行)应用程序(它排除了使用可执行文件本身来运行测试),但我需要能够调试我的单元测试。

所以我的具体如下:

创建测试包和测试。 创建新的测试目标,设置捆绑加载器和测试主机。 添加主目标作为测试目标的直接依赖。 创建新的自定义可执行文件otest。 添加-SenTest selfMyTestBundle.octest,参数。 在环境中添加DYLD_LIBRARY_PATHDYLD_FRAMEWORK_PATH变量。

我的问题是,当我现在尝试通过运行可执行文件来调试测试时,测试引用的类不可用。例如,如果我为类Foo编写测试,只要在测试中实例化Foo,我就会遇到错误的访问异常。

如果我将Foo.m添加到测试目标中,这就会消失,但我不必将我想要测试的每个类添加到测试目标以及应用程序目标。

我假设我只需要添加某种类型的变量告诉otest在哪里找到我的主可执行文件中的类,但我不知道这个参数的名称是什么。

有人能指出我正确的方向来解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

第二个想法,XCInjectBundle和XCInjectBundleInto变量会有帮助吗?它们在Apple的Automated Unit Testing with Xcode 3 and Objective-C

中有描述
  

XCInjectBundle:Unit Tests.octest

     

XCInjectBundleInto:OCT.app/Contents/MacOS/OCT