gpt4 book ai didi

unit-testing - 如何在 Xcode 中组织库项目的单元测试?

转载 作者:行者123 更新时间:2023-12-04 18:54:20 26 4
gpt4 key购买 nike

我还不是集成开发环境的粉丝,但我正在努力克服我的偏见并学习 Xcode。 (接下来是 Eclipse/CDT;我去年尝试时也无法让它为我工作,但这是一个单独的问题。)

我正在一个新项目中编写一些新代码,该项目将成为一个小型库(的一部分)。我也想对它进行单元测试。我如何向 Xcode 解释我正在构建一个(共享)库,但我也想在测试程序中使用它,从不会在共享库中的单独源编译?

源代码:

  • atom.c
  • atom.h
  • test-atom.c

  • 产生的文件:
  • libatom.dylib
  • 测试原子

  • 我有 atom.catom.h编译进库。我只是不确定如何组织事物以便我也可以构建 test-atom与图书馆链接。
    我假设当我完成排序后,添加 test-atom.c 的测试支持代码库将相对简单 - 即使它尚未受 Xcode 控制。

    FWIW,我主要使用 C 而不是 Objective C。

    最佳答案

    您的项目中需要两个目标; Xcode 中的目标生成一个产品,它是一个库、可执行文件或其他一些输出。

    因此,您将有一个目标来生成 libatom.dylib ,我怀疑您已经设置了它,以及另一个命令行可执行目标来生成 test-atom可执行文件供您运行以测试您的库。

    添加 test-atom 后目标,您应该在 test-atom.c 上获取信息并从 libatom.dylib 中删除其成员资格目标,并将其添加为您的新成员 test-atom目标。文件的目标成员资格决定了构建目标是否会尝试编译/复制/链接该文件。 (目标对文件的作用取决于它成为成员时添加到的构建阶段。)

    您还应该在 libatom.dylib 上获取信息进入您的产品组,并使其成为 test-atom 的成员目标也是如此。这将导致 test-atom可执行链接到 libatom.dylib .

    最后,在 test-atom 上获取信息目标(不是产品)并在“常规”选项卡中,添加对 libatom.dylib 的依赖项目标。这将确保构建 test-atom目标将始终首先构建 libatom.dylib目标。

    关于unit-testing - 如何在 Xcode 中组织库项目的单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1319906/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com