• sonar


    sonarqube+sonar-scanner

    代码质量测试
    代码质量七宗罪:

    • 编码规范:是否遵守了编码规范,遵循了最佳实践。
    • 潜在的BUG:可能在最坏情况下出现问题的代码,以及存在安全漏洞的代码
    • 文档和注释:过少(缺少必要信息)、过多(没有信息量)、过时的文档或注释。
    • 重复代码:违反了Don't Repeat Yourself(不要重复你自己)原则。
    • 复杂度:代码结构太复杂,难以理解、测试和维护。
    • 测试覆盖率:编写单元测试,特别是针对复杂代码的测试覆盖是否足够。
    • 设计与架构:是否高内聚、低耦合,依赖最少。

    代码测试工具sonarqube
    官方网站https://www.sonarqube.org/
    官网文档https://docs.sonarqube.org/6.7.7/
    sonar
    下载前一定要确定硬软件的要求
    https://docs.sonarqube.org/6.7.7/requirements/requirements/
    下载社区版
    https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.7.zip
    下载SonarScanner
    SonarScanner 是在构建系统没有特定扫描程序时使用的扫描程序
    https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/

    下载包一定要确实下环境
    下载包一定要确实下环境
    下载包一定要确实下环境
    https://docs.sonarqube.org/display/SONARQUBE67/Requirements

    unzip sonarqube-6.7.7.zip
    vim sonarqube-6.7.7/conf/sonar.properties
    [root@sonar ~]# grep -Ev "^#|^$" sonarqube-6.7.7/conf/sonar.properties 
    sonar.jdbc.username=sonar
    sonar.jdbc.password=1
    sonar.jdbc.url=jdbc:mysql://192.168.10.254:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
    sonar.web.host=0.0.0.0
    sonar.web.port=9000
    
    create database sonar character set utf8 collate utf8_general_ci;
    grant all on sonar.* to sonar@"192.168.10.%" identified by "sonar";
    

    一定要创建一个普通用户来运行

    useradd www
    chown www.www -R /usr/local/src/sonarqube-6.7.7
    su - www 
    cd /usr/local/src/sonarqube-6.7.7
    ./bin/linux-x86-64/sonar.sh start
    tail -f logs/*.log
    
    ss -tnl

    用浏览器访问192.168.10.240:9000
    默认登陆用户名密码admin
    sonar

    sonar
    sonar

    sonar
    sonar

    可以下载插件或更新插件
    sonar

    这是SonarQube的汉化包
    sonar

    https://github.com/SonarQubeCommunity/sonar-l10n-zh
    安装完成后重启
    sonar

    sonar
    sonar

    创建一个示例手动测试下

    mkdir -p /opt/python/src
    cd /opt/python
    vim sonar-project.properties 
    # Required metadata 
    sonar.projectKey=python-demo 
    sonar.projectName=python-demo
    sonar.projectVersion=v1.0
    # Comma-separated paths to directories with sources(required)
    sonar.sources=src
    #Language
    sonar.language=py
    # Encoding of the source files 
    sonar.sourceEncoding=UTF-8
    
    创建一个错误代码
    vim src/test.py
    #!/usr/bin/env python
    #coding:utf-8
    #
    def test1():
        print"test1"
    
    def test2():
        print("test2")
    
    test1()
    
    pwd
    /opt/python
    执行命令
    /usr/local/sonar-scanner/bin/sonar-scanner
    打开浏览器
    http://192.168.10.240:9000/dashboard?id=python-demo

    sonarqube
    sonarqube

    jenkins安装插件重启
    jenkins

    jenkins设置sonar-scanner
    jenkins

    添加sonar服务器
    jenkins

    新建一个python-demo
    jenkins

    jenkins
    jenkins

    jenkins
    jenkins

    jenkins
    jenkins

    vim sonar-project.properties
    # Required metadata 
    sonar.projectKey=python-demo 
    sonar.projectName=python-demo
    sonar.projectVersion=v1.0
    # Comma-separated paths to directories with sources(required)
    sonar.sources=./
    #Language
    sonar.language=py
    # Encoding of the source files 
    sonar.sourceEncoding=UTF-8

    jenkins
    jenkins

    gitlab服务器添加一个项目及代码
    gitlab

    jenkins关联到sonarscanner
    jenkins
    或者手动指定
    jenkins

    保存后构建一次

    创建一个错误python的代码上传到gitlab服务器上,然后使用jenkins构建一次,通过sonarscanner检查代码是否有BUG
    打开浏览器查看
    sonarscanner

    使用shell脚本来运行

    http://dubbo.apache.org/en-us/blog/download.html
    http://mirrors.tuna.tsinghua.edu.cn/apache/incubator/dubbo/2.6.6/apache-dubbo-incubating-2.6.6-source-release.zip

    git clone http://192.168.10.254/web233/web2.git
    cd web2/
    vim sonar-project.properties 
    sonar.projectKey=python-demo 
    sonar.projectName=python-demo
    sonar.projectVersion=v1.0
    sonar.sources=./
    sonar.language=py
    sonar.sourceEncoding=UTF-8
    
    git ./*
    git add ./* 
    git commit -m "v3"
    git push
    
    mkdir /data/git/projectname -pv
    vim python-demo.sh
    #!/bin/bash
    
    cd /data/git/projectname/ && rm -rf ./web2 && git clone git@192.168.10.254:web233/web2.git
    cd web2 && /usr/local/sonar-scanner/bin/sonar-scanner
    
    chmod a+x python-demo.sh

    jenkins新建一个项目测试下
    jenkins

  • 相关阅读:
    关于匹配的一些问题
    Codeforces Round #396 (Div. 2) A,B,C,D,E
    Codeforces Round #394 (Div. 2) A,B,C,D,E
    HDU 1848 SG函数博弈
    HDU 1536 S-Nim SG博弈
    HDU 2509 Be the Winner nim博弈变形
    HDU 1907 John nim博弈变形
    Codeforces Round #222 (Div. 1) D. Developing Game 线段树有效区间合并
    BZOJ 1031: [JSOI2007]字符加密Cipher 后缀数组
    HDU 5769 Substring 后缀数组
  • 原文地址:https://www.cnblogs.com/fina/p/11270019.html
Copyright © 2020-2023  润新知