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

发布于 2024-08-02 07:56:39 字数 578 浏览 10 评论 0原文

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

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

所以我所拥有的如下:

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

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

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

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

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

I'm using kind of a hybrid of Chris Hanson's excellent Xcode unit testing guide.

My program is a (command-line) application (which precludes using the executable itself to run the tests), but I need to be able to debug my unit tests.

So what I have is as follows:

Create test bundle and tests.
Create new test target, set bundle loader and test host.
Add main target as direct dependency for test target.
Create new custom executable otest.
Add -SenTest self, MyTestBundle.octest, arguments.
Add DYLD_LIBRARY_PATH and DYLD_FRAMEWORK_PATH variables in environment.

My issue is that when I now try to debug a test by running the executable, the classes referenced by the tests are not available. For instance if I write a test for class Foo, as soon as I instantiate Foo in my test I get a bad access exception.

If I add Foo.m to the test target this goes away, but I'd rather not have to add every class I want to test to the test taget as well as the application target.

I assume I just need to add a variable of some sort telling otest where to find the classes in my main executable, but I don't know what the name of this argument would be.

Can somebody point me in the right direction for fixing this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

泛滥成性 2024-08-09 07:56:39

再想一想, XCInjectBundle 和 XCInjectBundleInto 变量会有帮助吗?它们在 Apple 的 自动化单元测试中进行了描述
Xcode 3 和 Objective-C

XCInjectBundle:单元测试.octest

XCInjectBundleInto:OCT.app/Contents/MacOS/OCT

On second thought, would the XCInjectBundle and XCInjectBundleInto variables help? They are described in Apple's Automated Unit Testing with
Xcode 3 and Objective-C

XCInjectBundle: Unit Tests.octest

XCInjectBundleInto: OCT.app/Contents/MacOS/OCT

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文