Xcode7中令人激动的功能之一就是能够进行原生UI测试(感谢苹果),所以我在开发新的Xcode 7 / Swift 2项目时,我把重点放到了这上面来。在单元测试的过程中,Quick和Nimble 用起来真的很舒服,所以我也想把这些类库用在UI测试中。
使用CocoaPods安装Quick和Nimble很简单,然而问题是,你仅仅只是想把Quick和Nimble安装到测试的target中。
最初的办法是将Quick和Nimble分别放在Podfile的两个target中:
# Podfile platform :ios, '9.0' use_frameworks! # My other pods target 'MyTests' do pod 'Quick', '0.5.0' pod 'Nimble', '2.0.0-rc.1' end target 'MyUITests' do pod 'Quick', '0.5.0' pod 'Nimble', '2.0.0-rc.1' end 1234567891011121314151617我不喜欢Quick和Nimble在这里重复两次,每次更新版本的时候,我都要修改两个地方。
后来我google了一下,发现我需要使用link_with,我自认为link_with下方的所有库都将应用到我所指定的target中:
# Podfile platform :ios, '9.0' use_frameworks! # My other pods link_with 'MyTests', 'MyUITests' pod 'Quick', '0.5.0' pod 'Nimble', '2.0.0-rc.1' 123456789101112结果我完全错误理解了link_with以及它的工作原理。最后除了test targets,Quick和Nimble同时也安装到了我app的主target中。
于是我直接联系了大神-CocoaPods的核心开发者@NeoNacho,后来我使用了他提示的优雅方案:
# Podfile platform :ios, '9.0' use_frameworks! # My other pods def testing_pods pod 'Quick', '0.5.0' pod 'Nimble', '2.0.0-rc.1' end target 'MyTests' do testing_pods end target 'MyUITests' do testing_pods end 1234567891011121314151617181920我忘记了Podfile其实是一个ruby文件!感谢@NeoNacho节省了我一天时间!