• 使用SonarQube+Eclipse来分析python代码


    背景

    最近在项目中推广集成测试的理念以及相关工具,在jenkins中集成sonar去分析项目的java代码的时候,意外的发现,sonarqube上还有对应python的插件,而自己写的测试工具大部分都是基于python编写的,于是就想用sonar来检查自己的代码规范及添加单元测试用例来确保工具的稳定和可靠性。

    简要的预想流程

    sonar在jenkins中集成的时候,一般都是用mavens下配置sonar : sonar驱动的,如果套用python的插件,要去编写个pom.xml感觉不太方便(主要是还不太确定如何处理….有大神了解的望指教!),最后还是考虑直接用sonar-runner驱动比较方便。

    用sonar-runner的流程就比较简单了:

    1. 在项目的代码根路径下配置sonar-project.properties;
    2. 在sonar安装的服务器下checkout一份项目代码;
    3. cd到项目路径下,运行sonar-runner,就可以得到结果了。

    sonar-runner实际操作流程

      1. 编写sonar配置:

            在python项目的代码根目录下新建一个sonar-project.properties文件,配置内容如下:

             image

            其中,最关键也是最容易出错的是sonar.language,这个指定分析的语言配置一直被我认为是填写python,但无论怎么填写,都是提示“You must install a plugin that supports the language 'Python' ”。最后通过google,尝试,确定该位置要支持python的话,应该填写py。但这点在插件的wiki页面居然也没有明确说明,略显坑爹。当然觉得坑爹的并不是我一个,搜索到插件的讨论页面大把的同学都在喷…欢迎各位前去围观http://sonarqube.15.x6.nabble.com/Note-on-the-Python-Plugin-you-need-quot-sonar-language-py-quot-td5014450.html

    2. 运行sonar-runner,生成分析结果

            一般部署sonarqube,都是在linux上,也有在windows的,区别不大,只是操作脚本的差异,这里以linux为例,若安装的源码包,则需要在官网手动下一份sonar-runner。解压到sonarqube的文件夹中。

          首先,要找到sonar-runner的位置,如果不记得路径的,通过find指令完成,如下:

        (这里我搜索出来的比较多,是因为我的sonar和jenkins部署在一台机器上,所以会有mavens运行时的环境文件。)

            image

           第二步,就需要在服务器上checkout一份python项目的代码,并切换到该目录,如下图:

            image

          第三步,在该目录下运行sonar-runner,如下图所示,就会开始运行:

            image

            很快就会结束整个扫描,如下图,运行结束后,就可以到最后提示的路径去查看此次扫描检查的问题

            image

            前往该页面,显示的分析统计结果如下图,当然具体的详细问题和分析解决就不是这篇文章所关注的了:

             image

    eclipse中关联sonar

            首先,是在eclipse中安装对应的sonar插件。

                        官方的插件下载地址为:http://dist.sonar-ide.codehaus.org/eclipse/

                       在eclipse中安装该插件,流程为:启动eclipse,依次找到Help – Install New Softwares… – Add,在添加时如下图填写:

                        image

          其次,勾选提示的可安装插件,在安装时,可能会出现SonarQube optional connectors安装失败的情况,可以忽略和不选该插件。

                       image

                     之后就是自动安装,不会耗费多少时间。

         第三步,在eclipse的preferences--SonarQube中,找到Servers选项卡,然后填入本地已经部署好的SonarServer信息。如下图:

                      image

         第四步,在eclipse中关联sonar项目

                      需要在python项目的project名字上,右键点击,然后选择configure,然后选择Associate with SonarQube。

                      image

    第五步,在sonar的项目关联窗口中,搜索通过运行sonar-runner后,自动建立的python-sonar项目

                   这里所谓的python-sonar项目,就是在sonar中的对应project(这个project不能手动建立,只能通过运行sonar-runner来生成。)

                   如下图,在sonarqube project的文本框位置,输入项目名的其中部分字符(尽量输入多点,准确点),如果输入的名字在本地的sonar服务器中有对应项目存在,就可以搜索出对应的可选内容。

                      image

    第六步,关联完成项目后,就可以在eclipse开始分析你的python代码了,操作效果如下:(同sonar-runner,分析完成后的结果需要到指定的sonar服务器上查看)

                    image

  • 相关阅读:
    两个简单的画验证码图形程序
    Cisco路由技术基础知识详解
    网络管理中的常用命令
    网络管理中的常用命令
    基于SNMP的MIB库访问实现
    SNMP编程基础
    SNMP编程基础
    Cisco路由技术基础知识详解
    两个简单的画验证码图形程序
    模版方法
  • 原文地址:https://www.cnblogs.com/cuiyubo/p/8099163.html
Copyright © 2020-2023  润新知