Jon*_*ler 5 xcode unit-testing project-organization
我还不是集成开发环境的粉丝,但我正试图克服我的偏见并学习Xcode.(Eclipse/CDT是下一个;当我去年尝试时,我无法让它为我工作,但这是一个单独的问题.)
我正在一个新项目中编写一些新代码,这个新项目将成为一个小型库的一部分.我也想对它进行单元测试.我如何向Xcode解释我正在构建一个(共享)库,但我也想在测试程序中使用它,从不在共享库中的单独源代码编译?
源代码:
制作文件:
我有atom.c和atom.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目标。
| 归档时间: |
|
| 查看次数: |
2408 次 |
| 最近记录: |