CocoaPods 1.6.0 Betaのブログ記事(2018年8月)を今更ながら読んでいたら、s.test_spec
という定義ができるのを遅まきながら知った。
- CocoaPods 1.6.0 Beta Begins! - CocoaPods Blog
- 1.3.0で追加された機能だった🙈 CocoaPods 1.3.0 — Test specifications and performance improvements - CocoaPods Blog
test_spec
で定義したものがテストターゲットとなり、pod lib lint
かpod spec lint
した時にテストも実行してくれる- Googleで検索してみても、ほとんど日本語情報はなかった
- 1.6.0では複数のtest_specを定義した時に、1ターゲットに全部まとめられるのではなくて、複数ターゲットになるという改善が入って紹介されていた
Pod::Spec.new do |s| # ... rest of root spec entries go here # Unit Test Sources - Those do not require an app host to run. # They also require 'OCMock' dependency. s.test_spec 'Tests' do |test_spec| test_spec.source_files = 'Tests/**/*.{h,m}' test_spec.dependency 'OCMock' end # SnapShot Tests Sources - Those *do* require an app host to run. s.test_spec 'SnapshotTests' do |test_spec| test_spec.requires_app_host = true test_spec.source_files = 'SnapshotTests/**/*.{h,m}' end
おまけで、cocoapods-generateという、podspecからXcodeのプロジェクトを生成してくれるプラグインも紹介されていてよさそうだった。SwiftPM(Swift Package Manager)の$ swift package generate-xcodeproj
と一緒の感じですね。