2013-03-13 97 views
1

我正试图将Cocoapods的魔力带到我的公司,但它已经遇到了一个小小的障碍。我们需要能够对来自Cocoapods的代码进行单元测试。所以,我的问题是,有没有其他人在他们的公司遇到过这样的问题(或者是任何人只是偏执于关心单元测试这个代码,并想出如何?)。对我们来说,这可能不是一个交易破坏者,但如果我提前进行了分类,它肯定会帮助管理层顺利完成管理工作。你如何测试CocoaPod代码?

我们可以在客户端应用程序中插入测试,但考虑到我们会使用窗格来减少手动工作,这是一项非常多的手动工作。以某种方式做它会很好。

回答

3

在我Podfile我用的是这样的:link_with ['Sail', 'Sail-Tests']

此链接我的所有吊舱都与我正常的目标和我的测试目标。然后从我的测试中,我可以导入并测试任何我想要的。这可能与'在客户端应用程序中插入测试'重叠。

1

如果你想用类似于Xcode中(其中测试目标取决于被测试的一个)中创建一个设置,另一种选择是:

pod 'ObjectiveSugar', '~> 0.5' 

target :test, :exclusive => true do 
    pod 'OCMock', '~> 2.0.1' 
end 

标记专属的目标表明,它不应该继承父项的依赖关系。这可以防止此设置发生重复符号错误。

0

我使用Cocoapods集中了整套20多款应用程序的核心功能,这些应用程序都是同一个“基本”应用程序的白色标签版本。为此,我设置了两个Xcode项目的结构。

第一个包含核心功能,包括验证预期行为的单元测试(我的情况是Kiwi)。规范以及xcodeproj没有显示在podspec中,但是该项目在CI(Jenkins)下进行了测试。

第二个项目包含白标记的应用程序(每个应用程序一个项目),并且它通过Podfile具有对第一个项目设置的依赖关系。在这个轻量级的应用程序也是猕猴桃规格,只测试该特定应用程序的任何自定义代码。它不再测试核心类,因为它们已经被覆盖了。该项目也在CI下。

因此,主要的问题答案部分是您的库不仅包含依赖项目所需的源文件,还包含运行单元测试的编译Xcode项目(应用程序或库)。