当前位置: 首页 > wzjs >正文

企业网站诊断做视频链接的网站吗

企业网站诊断,做视频链接的网站吗,河北高端网站建设,wordpress非常慢iOS生成追溯关系的逻辑和Android端从用户角度来说是一致的,就是需要通过开始和结束关联用例,将用例信息与覆盖率信息建立关系,然后再解析覆盖率数据。 4.3.1 添加关联用例弹层 关联用例弹层和Android类似,只要你能设计出相应的样…

iOS生成追溯关系的逻辑和Android端从用户角度来说是一致的,就是需要通过开始和结束关联用例,将用例信息与覆盖率信息建立关系,然后再解析覆盖率数据。

4.3.1 添加关联用例弹层

关联用例弹层和Android类似,只要你能设计出相应的样式即可,下面给出弹层的部分代码,你可以根据自己的需求进行优化。

- (void)addFoatingMicInView:(UIView *)view :(NSString *) acenv :(NSString *)kbuildid :(createSwiftCodeCov *) cscc{//添加浮层代码,人工打点获取覆盖率数据self.uistackview=[[UIStackView alloc] initWithFrame:CGRectMake(10, 100, 250, 40)];self.uistackview.axis=UILayoutConstraintAxisHorizontal;self.uistackview.spacing=1;self.uistackview.backgroundColor=UIColor.lightGrayColor;self.uistackview.layer.cornerRadius=20;//添加标签,用于占位self.caseidlabel=[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 1, 20)];self.caseidlabel.text=@" ";[self.uistackview addArrangedSubview:self.caseidlabel];//标签self.corelabel=[[UILabel alloc] initWithFrame:CGRectMake(10, 0, 20, 20)];self.corelabel.text=@"开始关联用例ID: ";self.corelabel.textAlignment=NSTextAlignmentLeft;self.corelabel.font= [UIFont systemFontOfSize:14];[self.uistackview addArrangedSubview:self.corelabel];//buttonself.uibutton=[UIButton buttonWithType:UIButtonTypeCustom];self.uibutton.frame=CGRectMake(0, 0, 0, 0 );[self.uibutton setImage:[UIImage imageNamed:@"record"] forState:UIControlStateNormal];[self.uibutton setImageEdgeInsets:UIEdgeInsetsMake(8, 0, 8, 0)];self.uibutton.imageView.contentMode=UIViewContentModeScaleAspectFit;[self.uistackview addArrangedSubview:self.uibutton];[view addSubview:self.uistackview];self.panSuperView =view;UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panFloatingMic:)];[self.uistackview addGestureRecognizer:pan];UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(recordClick:)];[self.uibutton addGestureRecognizer:tap];//初始化时隐藏self.uistackview.hidden=YES;}//新定义button点击事件
-(void) recordClick:(UITapGestureRecognizer *)tap {//删除覆盖率数据文件NSLog(@"********开始录制覆盖率数据********");self.uibutton.hidden=true;//开始录制deeplinkNSString *tmp=[@"用例ID: " stringByAppendingString: self.caseid];self.corelabel.text=[tmp stringByAppendingString:@"录制中....         "];self.corelabel.textAlignment=NSTextAlignmentLeft;if ([self.covflag isEqual:@"2"]){NSLog(@"先上传自动收集的覆盖率数据,再清空收集用例覆盖率数据!");//先上传自动收集的覆盖率数据,再清空收集用例覆盖率数据 2022-12-12[self.swiftoper uploadCodeCoverageFiles:@"" :@""];NSLog(@"上传自动收集的覆盖率数据,开始收集用例对应的覆盖率数据!");[self.swiftoper clearCodeCoverageFiles];}else{//开始录制用例,清除旧的覆盖率数据文件[self.swiftoper clearCodeCoverageFiles];}}//关闭收集覆盖率弹层
- (void)hideFloatingMicrophone{NSString *tmp=[@"关联用例ID:" stringByAppendingString: self.caseid];self.corelabel.text=[tmp stringByAppendingString:@"结束!!!        "];self.corelabel.textAlignment=NSTextAlignmentLeft;[self performSelector:@selector(dissmisfloatview:)withObject:self.uistackview afterDelay:3.0];//上传覆盖率数据[self.swiftoper uploadCodeCoverageFiles:self.caseid :@""];
}

弹层示例:

样式做的比较简单,需要请专业人员进行优化一下。

4.3.2 覆盖率文件解析

通过关联用例操作,可以将覆盖率数据文件上传到精准测试平台,现在分两种情况再进行解析:

一,Object C覆盖率解析

1,获取gcda文件

通过关联用例操作,拿到指定文件夹下的所有gcda文件,也就是被测试应用的覆盖率数据文件,是一个zip包。

2,构建文件

通过构建平台,拿到.o,.gcno文件,再从git上下载源码。

3,将所有文件放在一起

将源码文件,.o, .gcno, .gcda文件放在一起。

4,生成覆盖率报告

执行下面两个命令:

geninfo --ignore-errors inconsistent
-o coverage.info ./qt-360-master genhtml
--ignore-errors inconsistent 
-o coverage_report coverage.info

5,解析info文件

读取info文件,通过对应行号的执行次数来解析文件覆盖的行啊。也就是说一个类中,对应的行号只要不为0,就把行号记录下来,最后得到文件行号列表:

SF:/Users/*****/TestmPinYin.swift
FN:16,$s4Kima9KimPinYinC7preloadyyFZ
...
FNF:14
FNH:1
DA:16,2
DA:17,2
DA:18,2
DA:20,0
DA:21,0
DA:22,0
DA:23,0
DA:24,0
.....

得到覆盖文件详情

{"/Users/*****/TestmPinYin.swift":[16,17,18],"文件2":[行号列表]....}

6,分析类中的函数

使用工具:https://github.com/L-Zephyr/Drafter,来解析一个类中的函数

使用命令:

draft -f 文件全路径.m

就可以得到文件中的函数列表以及函数的起始位置。

根据类覆盖的行号,类中函数的起始位置,就可以得到测试用例覆盖的函数列表。

二,Swift项目覆盖率解析

Swift项目产生的覆盖率文件是profraw文件,需要通过如下步骤进行处理。

1,转为profdata文件

使用命令将profraw文件转化成profdata文件。

xcrun llvm-profdata merge -sparse ./covdata.profraw -o ./covdata.profdata

2,将profdata文件转化成info报告文件

将覆盖率数据文件转化成profdata文件后,要下载覆盖率测试对应的安装包,解压出其中的二进看文件,然后通过下面的命令生成info报告文件。

xcrun llvm-cov export 二进制文件 --instr-profile=./covdata.profdata -use-color --format=lcov > ./report.info

3,解析用例覆盖信息

当拿到info文件后,就可以按照上面介绍的步骤,解析出用例覆盖的文件以及文件中对应覆盖的类信息。

{"类文件1":["fun1","fun2"...],"类文件2":["fun1","fun2"...],"类文件3":["fun1","fun2"...]}

最后将用例与覆盖的类函数信息写入数据库,就建立起用例与代码的关联关系。


文章转载自:

http://y0nf4V6i.qptbn.cn
http://zKs1TsdM.qptbn.cn
http://wLzlWXDD.qptbn.cn
http://4M2LhIVF.qptbn.cn
http://qDVVKCfb.qptbn.cn
http://JWklopXn.qptbn.cn
http://gf32gKU2.qptbn.cn
http://K5FG0ItA.qptbn.cn
http://EafTAY08.qptbn.cn
http://exvKudIY.qptbn.cn
http://GwyRw6bv.qptbn.cn
http://w669yKhl.qptbn.cn
http://mxGyqovh.qptbn.cn
http://dBBs7FS5.qptbn.cn
http://x5gaYkeH.qptbn.cn
http://6RoKAkLg.qptbn.cn
http://bB0cdt12.qptbn.cn
http://ArtHpYCM.qptbn.cn
http://OlWECtyM.qptbn.cn
http://VNd7WCWD.qptbn.cn
http://abTzIvSQ.qptbn.cn
http://551yiftM.qptbn.cn
http://4HqlSO1k.qptbn.cn
http://ekg3wC75.qptbn.cn
http://I69nPizq.qptbn.cn
http://AC4bzf92.qptbn.cn
http://8irYdoy6.qptbn.cn
http://Pyyo9xrm.qptbn.cn
http://X3X2LcSW.qptbn.cn
http://QG5zNQBK.qptbn.cn
http://www.dtcms.com/wzjs/710217.html

相关文章:

  • 广东建设报网站莲湖微网站建设
  • 太原网站建设外包价格网页设计的基本结构
  • 商城网站的建设wordpress 记录访问ip
  • 海淀石家庄网站建设企业做网站一般要多少钱
  • 东莞营销网站建设服务建设积分商城网站
  • 网站建设 赚钱吗怎样看一个网站做的网络广告
  • 幼教机构网站开发设计论文vps能同时做网站同时做其它事吗
  • 网站seo优化包括哪些方面关键词数据分析
  • 西安网站建设云阔网站建设人员性格
  • 网站seo如何做好优化制作网页设计公司
  • 做网站前端设计需要哪些证书优化方案2022
  • 响应式网站设计公司大邯郸网站
  • 做h5好点的网站长沙的科技公司
  • 推广企业网站最主要的方式是开封网站建设价格
  • 爱网站找不到了willfast优化工具下载
  • steam账号注册网站做预算查市场价格的网站
  • wordpress投稿管理宁波网站seo哪家好
  • 大淘客网站开发wordpress 头像
  • 建站园网站导航栏条源码
  • 营销型企业网站优化表情包在线制作模板大全
  • title 网站建设途谷网站建设
  • 网站设计与制作报价app首页设计效果图
  • 推广外贸网站网络专业公司排行榜
  • 百度站长平台查询应用商店正版下载安装
  • iis配置网站php网站显示正在建设是什么意思
  • 临沂做网站好的公司东莞建设银行
  • 成都网站公司建设开江住房和城乡建设部网站
  • 服务好的镇江网站优化济宁定制网站建设推广
  • 建设商务网站的方案enfold wordpress
  • 舟山做网站公司j2ee网站开发教程