bamboo进行单元测试


本教程将使用北汽登录模块为例,一步一步和大家一起搭建单元测试用例,并在Bamboo上跑起来,最终测试结果和代码覆盖率会Bamboo上汇总 。
模块名称:BQLoginModule,是通过iBiu创建的一个模块工程

bamboo进行单元测试

文章插图
一 建立单元测试Bundle
ProductName: BQLoginTests
bamboo进行单元测试

文章插图
二 测试代码编写
1 配置文件同步
如果我们要在测试代码使用我们在Pod里的类,需要同步 Targets Support Files/Pods-BQLoginTests/Pods-BQLoginTests.debug.xcconfig 文件的内容到 Targets Support Files/Pods-BQLoginUITests/Pods-BQLoginUITests.debug.xcconfig,直接内容copy就成了,只是每次用iBiu安装过后都要做这个操作,后续使用脚本实现同步:
bamboo进行单元测试

文章插图
2 测试代码编写
具体的编写我这里就过多介绍了,网上教程一大篇,这里就不多说了,如果没有做性能测试,这里可以把自动生成的 testPerformanceExample 屏蔽掉 。
bamboo进行单元测试

文章插图
三 运行单元测试
用 command+u,或者菜单(product->test)执行,就能获得结果
bamboo进行单元测试

文章插图
结果在这里看:
bamboo进行单元测试

文章插图
完成以上操作,基本的单元测试就OK了
下面我们用命令行来跑下单元测试,首先进入工程目录:
cd BQLoginModule/Example执行如下命令:
xcodebuild test -UseModernBuildSystem=NO -cOnfiguration=Debug -workspace './BQLoginModule.xcworkspace' -scheme "BQLoginModule_Example" -destination 'platform=iOS Simulator,name=iPhone 8,OS=13.2.2' 请大家注意将 workspace/scheme /模拟器信息 修改为自己工程对应信息
就可以看到结果
四 代码覆盖率
1 单元覆盖率
在XCode打开覆盖率统计,我们只打开我们的库做代码覆盖就成了,Xcode 12.4在如下地方:
bamboo进行单元测试

文章插图
在Pod里面BQLoginModule设置 BuildSettings 查找 "cov" ,把 以下2项都设置为YES;
bamboo进行单元测试

文章插图
然后我们跑下单元测试,就可以看到覆盖率结果了:
bamboo进行单元测试

文章插图
2 Bamboo报告
因为我们需要在Bamboo上汇总覆盖率报告,这里我们使用iBiu的一个高级特性:用 Podfile.custom 文件加载通用cocoapods的外网库来使用,具体见图:
bamboo进行单元测试

文章插图
这里我们引入2个库: OCMock(单元测试必备的Mock库) XcodeCoverage(覆盖率统计的库)
加入这个文件后,需要使用 iBou重新安装下组件
做如下设置:
bamboo进行单元测试

文章插图
bamboo进行单元测试

文章插图
这个命令主要是生成XcodeCoverage的环境依赖 env.sh 我们打开文件看下,文件路径如下
bamboo进行单元测试

文章插图
env.sh内容如下:
bamboo进行单元测试

文章插图
这里 OBJECT_FILE_DIR_normal 和 SRCROOT指向的是我们Example工程,我们是需要对Pods里的BQLoginModule里的代码做单元覆盖,这2个环境变量修改如下:

推荐阅读