zoukankan      html  css  js  c++  java
  • 使用OCLint进行Code Review

    OCLint是一个静态分析工具,支持C,C++,Objective-C代码,可以高效的实现Code Review的自动化,检查代码中的缺陷。

    1. 未使用的变量参数
    2. 复杂的代码逻辑,多个if/else的判断
    3. 不需要废弃的代码
    4. 过长的方法名或过多的参数
    5. 其它,可自己设置规则 

    下面开始从坏境搭建到配置来讲解OCLint到使用。

    一 坏境搭建

    1.通过homebrew安装OCLint
    brew tap oclint/formulae
    

      

    brew install Clint
    
    2.安装xcpretty
    sudo gem install xcpretty  

    安装完后,如果控制台输入oclint后出现下面内容,表示安装成功

    二 XCode配置

    1.增加taget

    在现有xcode项目中增加target,如下图,命名为"oclint"

    2.增加脚本

    选中OCLint Target,进入Build Phases选项,点左上角的加号,选择“New Run Script Phase”

    脚本输入框输入如上脚本代码:

    chmod -R 777 $SRCROOT/oclint
    $SRCROOT/oclint/oclint.sh
    

      

    3.创建脚本文件

    在主工程目录下新建oclint文件夹,新建oclint.sh脚本文件,编辑内容如下:

    cd到工程目录下,执行命令:

     

    脚本具体内容:

    export LC_ALL=en_US.UTF-8
    source ~/.bash_profile
    #获取项目路径
    PROJECT_DIR=$(cd `dirname $0`;cd ..;pwd)
    cd ${PROJECT_DIR}
    buildPath="${PROJECT_DIR}/oclint/build"
    compilecommandsJsonFolderPath="${PROJECT_DIR}/oclint"
    compilecommandsJsonFilePath="${PROJECT_DIR}/oclint/compile_commands.json"
    rm -rf "$compilecommandsJsonFolderPath/build"
    xcodebuild SYMROOT=$buildPath | xcpretty -r json-compilation-database -o $compilecommandsJsonFilePath
    cd $compilecommandsJsonFolderPath
    oclint-json-compilation-database -- -report-type xcode 
    -rc CYCLOMATIC_COMPLEXITY=10 
    -rc LONG_CLASS=1000 
    -rc LONG_METHOD=50 
    -rc LONG_LINE=140 
    -rc LONG_VARIABLE_NAME=30 
    -rc SHORT_VARIABLE_NAME=1 
    -rc MAXIMUM_IF_LENGTH=5 
    -rc MINIMUM_CASES_IN_SWITCH=2 
    -rc NCSS_METHOD=30 
    -rc NESTED_BLOCK_DEPTH=5 
    -rc TOO_MANY_METHOD=30 
    -rc TOO_MANY_PARAMETERS=5 
    -max-priority-1 0 
    -max-priority-2 5 
    -max-priority-3 10
    oclint sh
    4.compile_commands.json配置

    使用xcpretty生成的compilation_db.json,

    xcodebuild |xcpretty -r json-compilation-database

     工程同级目录下会生成build/reports/ompilation-db.json,拷贝到oclint目录下,重命名为compile_commands.json。如步骤3。

    以上配置完成后,target选择oclint,可以进行编译了,这时就可以看到设置的规则警告。

    项目中脚本设置了-rc LONG_LINE=140 表示一行不能超过140,所以会出警告。下一步将具体介绍规则配置。

    三 OCLint规则

    系统默认规则

    四 OCLint自定义规则

     待完成。。

  • 相关阅读:
    开发微博应用7构思草图
    微博应用研究【2】
    跟着Artech学习WCF扩展(4) 扩展MessageInspector
    ASP.NET开源MVC框架VICI 测试的便利性
    第一次踏出.net后花园(一)
    回忆被三层架构忽悠的日子,上当的同学自觉举手
    微博应用开发10
    开发微博应用【5】应用的使用频率
    微博应用研究(4)
    微博应用研究(3)
  • 原文地址:https://www.cnblogs.com/menchao/p/11912417.html
Copyright © 2011-2022 走看看