[TOC]
# 1. 測試規范
截至 CocoaPods 1.3.0 pod 現在可以提供測試規范(或簡稱測試規范)。 測試規范可用于描述給定 pod 的測試來源。
下面是一個CoconutLib.podspec示例,它是一個定義測試規范的虛構庫:
~~~
Pod::Spec.new do |s|
s.name = 'CoconutLib'
s.version = '1.0'
s.authors = 'Coconut Corp', { 'Monkey Boy' => 'monkey@coconut-corp.local' }
s.homepage = 'http://coconut-corp.local/coconut-lib.html'
s.summary = 'Coconuts For the Win.'
s.description = 'All the Coconuts'
s.source = { :git => 'http://coconut-corp.local/coconut-lib.git', :tag => 'v1.0' }
s.license = {
:type => 'MIT',
:file => 'LICENSE',
:text => 'Permission is hereby granted ...'
}
s.source_files = 'Classes/*.{h,m}'
s.test_spec 'Tests' do |test_spec|
test_spec.source_files = 'Tests/*.{h,m}'
test_spec.dependency 'OCMock' # This dependency will only be linked with your tests.
end
end
~~~
測試規格就像使用子規格一樣處理,但它們在生成的Pods.xcodeproj中的配置方式不同。 CoconutLib 源文件中不包含測試規范的源代碼和依賴項。 如果您想用不同的測試資源和依賴關系來描述您的 pod 的不同部分,您可以選擇在 podspec 中使用多個測試規范。
在你的 Podfile 中,你可以帶上這樣的測試規范:
~~~
target 'MyApp' do
use_frameworks!
pod 'CoconutLib', '~> 1.0', :testspecs => ['Tests']
end
~~~
當你 `pod install` 時,它會自動為 CoconutLib pod 的 Pods.xcodeproj 創建一個測試目標。 您可以選擇選擇該方案并構建并運行測試!
# 2. Linting
目前,`pint lib lint` 和 `pod spec lint` 現在可以支持您在制作 podspec 時自動構建和運行測試。 例如,將 CoconutLib.podspec 進行 linting 會自動設置并運行給定測試規范提供的測試。 如果你想跳過這一步,你可以使用 `--skip-tests` 標志。
~~~
pod lib lint CoconutLib.podspec --skip-tests
~~~
# 3. 支持的測試類型
截至目前,支持的測試類型僅適用于不需要執行應用程序主機的單元測試包。 將來會增加對應用主機測試規格的支持。