python代码审查工具

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

1、python的review工具

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

b、Codestriker:
Codestriker 也是一个基于Web的应用,其主要使用 GCI-Perl 脚本支持在线的代码审查。Codestriker 可以集成于CVS,SubversionClearCasePerforce 和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  并且使用  python   Subversion  服务器。当然,它同样支持其它的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_install coverage

你可能感兴趣的:(python)