JJS*_*olo 32 xcode unit-testing cocoapods swift
我正在使用XCode 6 Beta-6在Swift中编写应用程序.我正在使用Cocoapods,我正在创建一些单元测试.
问题是这个问题:显然不可能有一个项目包含:
1)用Swift编写的项目
2)使用cocoapods安装的一些吊舱
3)导入一些pod的Objective-C桥头文件
4)单元测试
这听起来很奇怪,但按照我的步骤:运行后pod install,创建Objective-C桥接头并导入一个pod:一切正常.现在编写一些测试:为了测试你自己的类,你必须导入名为"作为你的项目"的模块(或者更好,"作为主要目标"):在我的"MyAwesomeApp"项目中,我必须import MyAwesomeApp在我的测试中编写文件.
不幸的是,在这一步XCode将无法编译:在我的import MyAwesomeApp行中出现错误"无法导入桥接头'/path/to/MyAwesomeApp/MyAwesomeApp/MyAwesomeApp-Bridging-Header.h";
并且错误"找不到xxx.h文件"出现在Bridging-Header文件中,不包括导入pod的可能性.
此外,如果我不在Obj-c桥文件中导入pod,项目将编译正常.
看起来存在冲突导入Objective-C桥接头(使用从工作空间中的不同子项目获取的Objective-C文件)和用于测试的"主模块".
你知道是否有解决方案吗?我错过了什么?谢谢
注意:作为一种解决方法,我可以在Objective-C Bridge Header中导入pod,而不是在我的测试中包含主模块,在我的"test"目标中添加我想要测试的所有类.这将有效,但它不是最干净的解决方案(我认为)
ser*_*gio 32
如果您查看主要目标Build Settings,您将看到为"Header Search Paths"设置列出了一堆目录.
您需要在测试目标下复制这些值,或者您可以尝试修改Podfile以包含主目标和测试目标并重新运行install:
platform :ios, '7.0'
link_with 'mainapp', 'mainappTests'
...
Run Code Online (Sandbox Code Playgroud)
还要处理可能需要且与CocoaPods无关的任何其他标头路径.
并且不要忘记,无论您希望对哪些类进行单元测试,您的类都应具有公共方法.
希望这可以帮助.
小智 7
也许您已在项目级别配置了"Objective-C Bridging Header"设置,因此"Test"目标继承了该值,并且可能此"Test"目标未与Cocoapods链接.
使用link_with如@sergio暗示或设置为"测试"目标"豆荚*的.debug /发布"配置,在"项目- >信息- >配置".
| 归档时间: |
|
| 查看次数: |
10564 次 |
| 最近记录: |