CocoaPodsにtest_specというのがあるのを今更ながら知った
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と一緒の感じですね。