2013-03-13 110 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項目(應用程序或庫)。