在写unit test的过程中遇到一些问题,在编译的时候,如果我们代码中引入了pod库头文件或者@import xxx,会提示
xx.h file not found
方法1:
在网上找了半天,说是当测试单元在编译的时候没有包含pod库导致的
解决方案:
Project
=> Info
=> Configurations
将对应的 None
改一下;注意:是project
测试结果
经过测试我这里没有效果
方法2:
原因是因为你的podfile里面写的target只有你的项目,没有test,所以需要修改你的podfile文件:
解决方案:
找到测试target,在里面添加pod依赖,然后执行pod install,这时候,会在pod工程下的 Target Support Files下生成pod-xxxxTests
测试结果:
出现:The sandbox is not sync with the Podfile.lock问题
解决:
关闭当前的工作空间,删除掉文件夹中的workspace,然后重新pod install,install完成之后,通过workspace打开工作空间,clean+build即可,如下所示
rm -rf MyProject.xcworkspace
pod install
在pod install之前,请确保已经执行pod setup命令。
通过这种方式,可以解决以上问题;
如果在工程代码中含有objc与swift混编的情况,可以在测试目录下建立一个测试的swift文件,这时系统会为我们生产一个桥接文件,保留这个文件,就可以解决找不到一些swift库的问题;
我的问题:
原工程能编译通过,测试工程编译不过,我们只需要在测试target的Builde Phases中设置自己需要的测试文件即可,其他不需要的统统删掉,如下图:
最后附上网上一些写的比较好的关于单元测试以及UI测试的方法,传送门