个性化阅读
专注于IT技术分析

CocoaPods测试 – CocoaPods教程

上一章CocoaPods教程请查看:CocoaPods常见问题和解决办法

测试规范

从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中配置的方式不同。测试规范的源代码和依赖项将不包括在cocoutlib源代码中。如果你想用不同的测试源和依赖来描述pod的不同部分,你可以选择在一个podspec中包含多个测试规范。

在你的Podfile你可以带来这样的测试规范:

target 'MyApp' do
  use_frameworks!
  pod 'CoconutLib', '~> 1.0', :testspecs => ['Tests'] 
end

当你安装pod时,它将自动在pod中创建一个测试target,Pods.xcodeproj用于CoconutLib pod,你可以选择选择该方案并构建和运行你的测试。

Linting

pod lib lint和pod spec lint现在支持构建和自动运行你的测试,当你lint你的podspec时。比如lint CoconutLib.podspec将自动设置并运行给定测试规范提供的测试。如果你想跳过这一步,你可以使–skip-tests标志。

pod lib lint CoconutLib.podspec --skip-tests

应用程序的主机

在CocoaPods 1.4.0中,测试规范中增加了对应用程序主机的支持。如果你的测试需要一个应用程序主机才能正常运行,你可以在你的podspec中指定如下:

 s.test_spec 'Tests' do |test_spec|
    test_spec.requires_app_host = true
    test_spec.source_files = 'Tests/*.{h,m}'
  end

请注意,CocoaPods只会生成一个应用程序主机,可以被多个测试规格使用。

赞(0)
未经允许不得转载:srcmini » CocoaPods测试 – CocoaPods教程

评论 抢沙发

评论前必须登录!