我希望能够在库目标中测试库代码,因此我不必切换到单独的项目来运行它。
我看到了如何添加目标,但我不知道如何将其设置为像“命令行工具”项目模板那样运行。我尝试添加一个新的“Shell Tool”目标,但我不知道如何让它像一个一样运行。我必须添加到该目标的构建设置是什么?启动它需要哪些文件(main.m?)?
编辑(从下面添加了我的评论,希望能让问题更加负责。)
我的图书馆有两个目标,一个用于iOS,另一个用于MacOS。到目前为止,我只将它包含在iOS项目中,所以这就是我现在想要的工作。我尝试添加一个Cocoa Touch Unit Test Bundle目标,但我的构建失败,我得到命令/ bin / sh /失败,退出代码1和架构'i386'的失败测试(GC OFF)。我不认为我想在i386上运行(至少不是为了测试我的iOS目标)而且我找不到任何在目标设置中说i386的东西。
我看到我项目的活动架构是i386(在Project> Set Active Architecture菜单中),但它不允许我在那里更改它。我的TestApp目标有标准(armv6)作为架构集,我尝试搜索设置,其中没有任何i386。我该如何改变?
答案 0 :(得分:2)
Mac OS X SDK中有一个单元测试包目标的模板。
请注意,“bundle”是测试目标的构建产品:目标生成单元测试包。它不要求您的实际产品(库,应用程序等)是一个捆绑;事实上,你的实际产品是什么并不重要。
也就是说,当你有一个静态库时,你可以做一些不同的事情:
通常,您只需将测试中的代码的源代码文件添加到库目标和测试包目标,但是这样做也会测试您将测试包链接到库的能力。如果库有任何阻止链接的问题,可能会检测到它们。
答案 1 :(得分:0)
您可以更改Active Executable吗? (它位于Xcode的Project菜单下:Set Active Executable)
您的Shell Tool目标是否在其中一个构建文件中包含int main(int argc, char* argv[])
函数?
答案 2 :(得分:0)
对于Mac,您可以添加新目标。选择命令行工具模板。
答案 3 :(得分:0)
在XCode 9.1中:
File -> New -> Target...
MacOS Unit Testing Bundle