持续更新中。。。。。。
第一步:安装ruby环境
mac电脑一般不会自带ruby,需要自己安装,如果已经安装了ruby的可以忽略
1.安装rvm:$ curl -L https://get.rvm.io | bash -s stable
2.设载入rvm:$ source ~/.rvm/scripts/rvm
3.检查是否安装成功:$ rvm -v
4.查看ruby版本:$ rvm list known
5.安装ruby:$ rvm install 2.4
(注意:安装的目标文件夹当前用户必须有write权限,homebrew也要更新到最新版)
6.查看安装的ruby版本:$ rvm list
7.将安装的ruby设为系统默认版本:$ rvm 2.0.0 —default
第二步:安装cocoaPods
1.命令:sudo gem install cocoapods
(注意:这里可能需要电脑翻墙,有的人是使用了国内的源:http://code4app.com/article/cocoapods-install-usage)
第三步:将XcodeCoverage插入到你的项目中
1.cd到工程路径下,新建一个Podfile文件: vim Podfile
2.在文件中加入一行:pod 'XcodeCoverage', ‘~>1.0'
第三步:将XcodeCoverage插入到你的项目中
1.cd到工程路径下,新建一个Podfile文件: vim Podfile
2.在文件中加入一行:pod 'XcodeCoverage', ‘~>1.0'
3.运行:pod install
这时可能会遇到一个问题,报错:error: RPC failed; curl 56 SSLRead() return error -36
这时因为安装了大于1个Xcode导致的,需要明确一下Xcode路径
终端输入:sudo xcode-select -switch /……./Xcode.app/Contents/Developer
之后重新执行:pod install
这时还可能会遇到错误:The dependency `XcodeCoverage (~> 1.0)` is not used in any concrete target.原因是最新版本的pop有语法变动还有SDK版本没有做兼容。
解决方法:vim Podfile
插入内容:target 'TestApp' do
pod 'XcodeCoverage', '~>1.0'
end
platform :ios, '10.2'
保存退出重新执行:pod install
第四步:将待测target改成debug模式
如下图,需要改2个地方
这里解释一下target的含义,现在的app都会有不同的版本迭代如:1.0 2.0等,由于现在我使用的app是一个demo,所以只有一个target,可以在上图中的黄色iconTestAPP中切换target。
此时再检查一下app能否正确在模拟器上运行,我在这里遇到了报错:ld: library not found for -lPods。原因是需要要打开后缀名为xcworkspace的文件运行。IOS项目当运用了cocopods引入第三方时不能打开原样式的文件
第五步:项目中插入代码
在app项目中找到APPDelegate.m文件,修改如下部分:
- (void)applicationDidEnterBackground:(UIApplication *)application { #if NT_COVERAGE #if !TARGET_IPHONE_SIMULATOR NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; setenv("GCOV_PREFIX", [documentsDirectory cStringUsingEncoding:NSUTF8StringEncoding], 1); setenv("GCOV_PREFIX_STRIP", "13", 1); #endif extern void __gcov_flush(void); __gcov_flush(); #endif } |
第六步:在在模拟器中操作
1.build&run待测app,在模拟器中操作,点击Home键。IOS模拟器的HOME键:command+shift+H
2.cd 进入 项目/Pod/XcodeCoverage 运行:./getcov —show
就可以自动生成测试报告
注:这个时候可能会遇到以下问题
1.WARNING: no .da files found in /Users。。。。。。。 - skipping!
2.lcov: ERROR: no valid records found in tracefile coverage.info
原因主要可能有2点:
1.lcov-1.12 并不是最新版,只有1.12才开始兼容了ios10
下载链接:https://github.com/daihongchao/XcodeCoverage
2.linux环境导致的不适配,解决方法:
修改/envcov.sh:
LCOV()
{
"${LCOV_PATH}/lcov" “$@"
}
修改/getcov
"${LCOV_PATH}/genhtml" --ignore-errors source --output-directory . “${LCOV_INFO}"
问题都解决之后就可以查看到刚才操作的代码覆盖率报告了。
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。