静态分析工具——Oclint

发表于:2017-9-20 14:05

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:搜狗测试    来源:51Testing软件测试网采编

  CLint是一个强大的静态代码分析工具,可以用来提高代码质量,查找潜在的bug,主要针对c,c++和Objective-c的静态分析。功能非常强大。
  1、oclint 与 xcpretty的安装
  推荐是用Homebrew 来安装,快速且节省精力,也可以选择源码安装或者release包来安装,不过需要配置环境变量的内容。使用Homebrew 安装时,需要先设置brew的第三方仓库,然后安装,xcpretty 用于解析xcodebuild 构建日志,解析后的结果交给oclint来使用。
  oclint的安装还是比较简单方便的,推荐安装方法:
  oclint的安装:
  brew tap oclint/formulae
  brew install oclint
  xcpretty的安装:
  sudo gem install xcpretty
  简单轻松的三条命令环境部署完成。
  2、构建与静态代码扫描
  1)构建与解析日志
  xcodebuild 命令构建部署
  xcodebuild 默认构建的格式Release ,如果特殊需求,需要在xcode工程内去修改相关工程配置,构建Debug 或者 Ad 包自行添加相关参数。build之后,使用xcpretty 来解析编译日志即可。
  CODE_SIGN_IDENTITY="xxx"
  DEVELOPER_DIR="/Applications/Xcode7.app" xcodebuild CODE_SIGN_IDENTITY=${CODE_SIGN_IDENTITY} clean
  DEVELOPER_DIR="/Applications/Xcode7.app" xcodebuild CODE_SIGN_IDENTITY=${CODE_SIGN_IDENTITY} | xcpretty -r json-compilation-database
  cp build/reports/compilation_db.json compile_commands.json
  -r json-compilation-database 制定的数据的输出格式为json格式。
  输出的数据为build/reports/compilation_db.json。
  2)解析结果使用oclint做扫描
  使用oclint时需要将build/reports/compilation_db.json 重新命名为 compile_commands.json 并移动至当前目录。
  oclint-json-compilation-database -e Pods -- -o=lint.xml -report-type=pmd -stats -max-priority-1=9999 -max-priority-2=9999 -max-priority-3=9999
  -rc LONG_LINE=500 -rc LONG_VARIABLE_NAME=100
  将结果输出格式为pmd 格式,然后通过jenkins的pmd插件就可以做结果的展示了。
  3)oclint其它参数
  -e Pods
  -- -rc=LOG_LINE =100
  LINT_DISABLE_RULES = "
  -disable-rule= LongClass
  -disable-rule= LongLine
  -disable-rule= LongMethod
  -disable-rule= LongVariableName
  -disable-rule= ShortVariableName
  -disable-rule= HighNcssMethod
  -disable-rule= DeepNestedBlock
  -disable-rule= TooManyFields
  -disable-rule= TooManyMethods
  -disable-rule= TooManyParameters
  -disable-rule= IVarAssignmentOutsideAccessorsOrInit
  命令行最后加入 $LINT_DISBALE_RULES 可以禁用某些不需要的规则
  3、中间出现的问题
  1)oclint: error: violations exceed threshold
  超过了阈值,所以调大了-max-priority-1=9999 -max-priority-2=9999 -max-priority-3=9999
  2)  出现了code sign错误
  在xcodebuild后面加上参数 CODE_SIGN_IDENTITY就行了。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号