iOS 项目中新建单元测试 UnitTests遇到的问题

本文使用苹果的是自带的XCTAssert 框架进行单元测试,网上有很多小白教程都是从零开始新建项目自动勾选Unit Tests,但是我的项目很老,开始的时候并没有勾选,所以只能走新建Target的路了。

1、需要项目中新建单元测试的target (target 不懂的兄弟,请自行百度吧...)

上图中1、就是我们新建的Target名称,这个可以随意取,叫啥都行。2、是项目的账号Team,这个也不用管,就是用项目账号的Team即可,如果是真机调试的话。3、是工程,也不需要设置。上图中4 需要注意,这是需要单元测试的Target对象,如果说你的项目中存在多个Target的话,那就要注意了,选择好哪一个才是要进行单元测试的target


2、此时target 已经创建成功,这个时候就是工程配置的问题了,下面我就讲一下我遇到的两个问题,希望能对相同问题的兄弟有所帮助

(1).  最普遍的当然是Pod 的第三方库报错not found,这个是因为原来Unit Tests 是新建的Pod的路径没有,需要重新引入

将途中的两处none 都设置成pod 路径即可。

(2) 这个错误我也不知道怎么描述,控制台的输出是6535:3315297] Failed to load test bundle from file:///private/var/containers/Bundle/Application/3C3B55CF-0E95-425F-B7AF-D4A158C74A25/zhumuH5.app/PlugIns/YsxTests.xctest: Error Domain=NSCocoaErrorDomain Code=3587 "dlopen_preflight(/var/containers/Bundle/Application/3C3B55CF-0E95-425F-B7AF-D4A158C74A25/zhumuH5.app/PlugIns/YsxTests.xctest/YsxTests): Library not loaded: /System/Library/Frameworks/CoreServices.framework/CoreServices

  Referenced from: /var/containers/Bundle/Application/3C3B55CF-0E95-425F-B7AF-D4A158C74A25/zhumuH5.app/PlugIns/YsxTests.xctest/YsxTests

  Reason: image not found" UserInfo={NSLocalizedFailureReason=软件包已损坏或丢失必要的资源。, NSLocalizedRecoverySuggestion=请尝试重新安装软件包。

这里我也没办法了,直接来了一波清除缓存,将Xcode资源库的DrivedData 全部干掉然后在BuildSettings里搜索legacy. 将属性设置成YES



(3)这个时候还是有问题,但是日志并没有显示错误,搜索看一下自己新建Target。iOS Deployment. 设置的是多少,我这里是Xcode。自动设置的是12.1,有些第三方库不支持,直接改成9.0就可以build Succeed 了

(4)最后一步,这里都成功了,但是当我们引入动态库SDK的头文件的时候,运行会直接失败,提示SDK找不到,搜索Search Paths。按照我们最开始选择的Unit测试的Target 引入了几个SDKpath,这里也都设置一边就OK了

到这里,我的工程新建的单元测试就可以成功编译了,希望可以帮助到您

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。