发布时间:2022-08-09 文章分类:编程知识 投稿人:王小丽 字号: 默认 | | 超大 打印

python代码审查工具

这两天看了python相关代码的审查、覆盖等工具,先记录下来,后边再总结其用法。

1、python的review工具

a、Review board:
Review board是一个 基于web 的工具,主要设计给djangopython的用户。Review board可以帮助我们追踪待决代码的改动,并可以让Code-Review更为容易和简练。尽管Review board最初被设计在VMware项目中使用,但现在其足够地通用。当前,其支持这些代码版本管理软件:SVN, CVS,Perforce,Git,Bazaar, 和Mercurial.

b、Codestriker:
Codestriker也是一个基于Web的应用,其主要使用 GCI-Perl 脚本支持在线的代码审查。Codestriker可以集成于CVS,Subversion,ClearCase,Perforce和Visual SourceSafe。并有一些插件可以提供支持其它的源码管理工具。

c、Groogle:

Groogle是一个基于WEB的代码评审工具。Groogle支持和Subversion集成。它主要提供如下的功能:

  • 各式各样语言的语法高亮。
  • 支持整个版本树的比较。
  • 支持当个文件不同版本的diff功能,并有一个图形的版本树。
  • 邮件通知所有的Reivew的人当前的状态。
  • 认证机制。
d、Rietveld:
Rietveld由Guido van Rossum 开发(他是Python的创造者,现在是Google的员工),这个工具是基于Mondrian工具,作者一开始是为了Google 开发的,并且,它在很多方面和Review board很像。它也是一个基于Web的应用,并可以Google App Engine当主机。它使用了目前最流行的Web开发框架django并支持Subversion。当前,任何一个使用 Google Code 的项目都可以使用Rietveld并且使用pythonSubversion服务器。当然,它同样支持其它的Subversion服务器。

e、JCR

JCR或者叫做 JCodeReview 也是一个基于WEB界面的最初设计给Reivew Java 语言的一个工具。当然,现在,它可以被用于其它的非Java的代码。

JCR主要想协助:

  • 审查者。所有的代码更改都会被高亮,以及大多数语言的语法高亮。Code extracts 可以显示代码评审意见。如果你正在Review Java的代码,你可以点击代码中的类名来查看相关的类的声明。
  • 项目所有者。可以 轻松创建并配置需要Review的项目,并不需要集成任何的软件配置管理系统(SCM)。
  • 流程信仰者。 所有的评语都会被记录在数据库中,并且会有状态报告,以及各种各样的统计。
  • 架构师和开发者。 这个系统也可以让我们查看属于单个文件的评语,这样有利于我们重构代码。
f、Jupiter:最后我们要提一下Jupiter,这是另一个代码review的工具你可以去考虑使用的,它是一个Eclipse IDE 的插件。

2、python语法检查工具

Pylint 是什么

Pylint 是一个 Python 代码分析工具,它分析 Python 代码中的错误,查找不符合代码风格标准(Pylint 默认使用的代码风格是 PEP 8,具体信息,请参阅参考资料)和有潜在问题的代码。目前 Pylint 的最新版本是 pylint-0.18.1。

  • Pylint 是一个 Python 工具,除了平常代码分析工具的作用之外,它提供了更多的功能:如检查一行代码的长度,变量名是否符合命名标准,一个声明过的接口是否被真正实现等等。
  • Pylint 的一个很大的好处是它的高可配置性,高可定制性,并且可以很容易写小插件来添加功能。
  • 如果运行两次 Pylint,它会同时显示出当前和上次的运行结果,从而可以看出代码质量是否得到了改进。
  • 目前在 eclipse 的pydev插件中也集成了 Pylint。

pychecker

3、python覆盖工具

coverage.py是一个用来统计python程序代码覆盖率的工具。它使用起来非常简单,并且支持最终生成界面友好的html报告。在最新版本中,还提供了分支覆盖的功能。

官方网站:

http://nedbatchelder.com/code/coverage/

win32版本下载地址:

http://pypi.python.org/pypi/coverage

或者通过easy-install来安装:

easy_installcoverage