IOS开发中使用单元测试(OCUnit)测试集成pod库工程中的一些问题以及解决方案

在写unit test的过程中遇到一些问题,在编译的时候,如果我们代码中引入了pod库头文件或者@import xxx,会提示

xx.h file not found

方法1:

在网上找了半天,说是当测试单元在编译的时候没有包含pod库导致的

解决方案:

Project => Info => Configurations 将对应的 None 改一下;注意:是project

测试结果

经过测试我这里没有效果

方法2:

原因是因为你的podfile里面写的target只有你的项目,没有test,所以需要修改你的podfile文件:

解决方案:

IOS开发中使用单元测试(OCUnit)测试集成pod库工程中的一些问题以及解决方案_第1张图片

找到测试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中设置自己需要的测试文件即可,其他不需要的统统删掉,如下图:

IOS开发中使用单元测试(OCUnit)测试集成pod库工程中的一些问题以及解决方案_第2张图片

 

最后附上网上一些写的比较好的关于单元测试以及UI测试的方法,传送门

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(IOS开发,IOS开发,单元测试,pod集成,常见问题)