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

Posted

技术标签:

【中文标题】使用 otest 调试测试时,如何将我的可执行文件链接到我的测试包?【英文标题】:How do I link my executable to my test bundle when debugging test using otest? 【发布时间】:2009-08-25 00:07:16 【问题描述】:

我正在使用 Chris Hanson 出色的 Xcode 单元测试指南的混合体。

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

所以我有如下:

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

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

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

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

有人可以指出我解决此问题的正确方向吗?

【问题讨论】:

我或多或少和你在同一条(挣扎)的船上,所以我没什么可提供的,除了 SenTest 的参数在文档中大写,如 -SenTest Self。 【参考方案1】:

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

中有所描述

XCInjectBundle:单元测试.octest

XCInjectBundleInto: OCT.app/Contents/MacOS/OCT

【讨论】:

以上是关于使用 otest 调试测试时,如何将我的可执行文件链接到我的测试包?的主要内容,如果未能解决你的问题,请参考以下文章

gdb注意事项

我的可执行 JavaFX 文件如何连接到 MySQL 数据库?

使用 minidumps 和 GDB 分析 mingw 编译的可执行文件的崩溃?

gcc的常用编译命令

在 Cabal 测试套件中找到我的可执行文件

如何将图标添加到 Python pip 生成的可执行文件的 entry_points