pylint+jenkins打造代码检查平台之简介

前言

首先说明一下代码检查的重要性,python是一门静态语言,有很多检查工具(pylint、flake8等)都可以很好的检查代码. 平时我们大多数都是以插件的形式集成到编辑器(如Sublime、Visual Studio Code等). 比如我们有如下代码:

# -*- encoding: utf-8 -*-
import datetime
def get_now():
    date = datetime.datetime.now()
    return date

随着不同的人改动,可能会变成这样:

# -*- encoding: utf-8 -*-
import datetime
from datetime import datetime
def get_now():
    date = datetime.datetime.now()
    return date

能看出有什么问题吗, 让我们使用pylint执行一下看看:

C: 11, 0: Trailing newlines (trailing-newlines)
C:  1, 0: Missing module docstring (missing-docstring)
C:  8, 0: Missing function docstring (missing-docstring)
E:  9,11: Class 'datetime' has no 'datetime' member (no-member)

显示错误:类datetime没有datetime属性,这是一个在实际代码发现的问题, 由于后来的人增加的from datetime import datetime覆盖了import datetime. 这些错误很隐蔽, 直接很难发现.

pylint代码检查

下面介绍一下pylint检查代码的两种方式:

命令行

  • 手动安装检查需要的库
  • pylint + 模块名或包名 进行检查
  • 从控制台看检查结果

jenkins

jenkins插件Violations支持pylint、jslint等结果的显示.

  • 创建jenkins job
  • 配置job:
    • 设置Subversion
    • 设置Credentials(svn登陆账号密码)
  • 编写构建脚本
  • 设置Report Violations
  • 设置一些邮件通知相关
  • 构建,查看代码检查结果

由于我使用的代码仓库是svn,git的话也类似.

如果有很多项目需要进行代码检查, 就可以看到上面两种方式的局限性了:

  • 新增一个项目进行检查步骤多,容易出错
  • 没有一个直观的视图了解多个项目健康状况

基于上面种种不便, 为了将代码检查系统化, 下面检查基于jenkins+pylint的一个代码检查平台.

代码平台

首页

《pylint+jenkins打造代码检查平台之简介》 image.png

上图显示的是两个项目代码质量的情况, 以
eyes为例说明:

  • 告警数188: pylint告警有188个
  • 文件数47: 有47个文件有告警
  • 中间的乌云表示代码告警数大于设置的阀值, 说明当前项目处于不健康状态

详细

点击详细进入

《pylint+jenkins打造代码检查平台之简介》 image.png

这里可以看到具体项目代码质量的一个趋势图以及趋势差异表格. 点击代码趋势可以跳转到jenkins上展示的详细信息.

代码告警详细

《pylint+jenkins打造代码检查平台之简介》 image.png

在这里可以点开每一个文件,进行告警修复.

新增一个待检查的项目

《pylint+jenkins打造代码检查平台之简介》 image.png

我这里检查的代码分支是svn,所以只需要填写一个svn信息即可. 超过告警阀值的话会进行邮件通知.

总结

这个代码检查平台是将代码检查系统化, 让代码检查更简单. 主要用到的技术如下:

  • jenkins api 相关
  • CoPilot
  • django
  • django_q
    原文作者:python取经小分队
    原文地址: https://www.jianshu.com/p/de74656a9609
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞