coding

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

2017-10-23  本文已影响79人  python取经小分队

前言

首先说明一下代码检查的重要性,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检查代码的两种方式:

命令行

jenkins

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

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

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

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

代码平台

首页

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

详细

点击详细进入

image.png

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

代码告警详细

image.png

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

新增一个待检查的项目

image.png

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

总结

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

上一篇 下一篇

猜你喜欢

热点阅读