InfoQ

新闻

Autotest:一款测试辅助工具

作者 Werner Schuster译者 高昂 发布于 2007年12月14日 下午8时1分

社区
Ruby
主题
编程,
敏捷技术,
单元测试
标签
自动化操作,
IDE,
测试,
ZenTest

许多人一直不解,在Ruby社区的开发者,为什么更喜欢类似于TextMate这样的文本编辑器,而非图形化的IDE工具?其中一个原因就是,在文本编辑器环境下,有大量Ruby编写的工具,可以帮助开发者完成繁琐的编码工作。最近,在Pat Eyler的blog中,对这些工具的特性进行了评比

Autotest就是其中之一,它是Zentest包中的一个组件。其安装方式如下:

gem install zentest 

Zentest可以帮助你撰写单元测试,并且将测试与你的代码进行同步,而Autotest只做一件事请,那就是:在启动之后,每当文件保存时,就会重新执行一遍相应的单元测试。Autotest非常智能化,只会运行保存的文件所对应的那部分单元测试。

Autotest的作者Eric Hodel,谈及编写这款工具的原因时,说道这是由于他的工作模式所致使:

在我编写autotest之前,我进行细粒度的代码修改时,往往在语法上都是正确的。我编写autotest来自动执行单元测试,这样我就不需要手动选择需要运行哪个测试。因为我的变动很小,所以我也不需要将注意力分散于在控制台中敲打测试命令之上。

他同时也提到了执行测试的另一个益处:可以将代码在每次保存的时候都进行装载和检查。流行的Java IDE工具,都会执行一组庞大的静态分析,比方说在代码之上的语法语义检查,或者是在保存文件时执行增量检查。相同层面的自动化检查通过Autotest就可以完成,并且可以让开发者的注意力仍然保持在他们喜爱的编辑器之上。

Autotest同样也允许通过插件接口来进行拓展。这如同在项目根目录下创建一个".autotest"文件那样简单。实现这一点,可以使用已经存在的插件,或是针对不同的钩子程序编写自定义的处理句柄:

Autotest.add_hook :red { |autotest|   p "Failures!" } 

以上语句展示的是当测试失败时的处理方式,其中第一个参数是hook的名称。当测试未执行通过时,这段代码将会简单的打印输出“Failures!”。当然,根据测试的输出结果,Autotest同样也允许调用其他工具,或者是在每次保存的时候都执行测试。目前,与Emacs编辑器整合的Autotest插件,或是acoustic feedback插件已经可以使用。

你以前曾听说过Autotest吗?是否打算立即尝试一下呢?

查看英文原文:Autotest - a hidden tool gem

没有回复

回复

深度内容

Flex与JSON及XML的互操作

平台需要互操作性。在这篇文章中,作者仔细研究了Flex和JSON及XML的互操作性。文章也包含了使用E4X库来将XML映射到图表和表格组件的内容,还演示了如何使用as3core库来解码JSON消息。

用Qi4j进行面向组合编程

本文将简要介绍面向组合编程(COP,Composite Oriented Programming)的概念,展示它如何规避OOP存在的一些问题,并重新点燃使用可重用部件组装领域模型(Domain Model)的希望。

系统开发——新学科,新教育

一门新的计算机学科——“系统开发”,强调人性化、匠艺、设计、创意、创新和新事物的涌现,并建议用被称为“bottega”的工作室替代乏善可陈的教室。

图书聚焦:Visual Studio 2008 揭秘

Mike Snell和Lars Powers用他们最近由Sams出版的新书《Visual Studio 2008揭秘》,试图帮助大家提高开发人员的生产力。本文包括一个下载样章——第10章调试。

BPEL为何不是BPM的圣杯?

Pierre Vigneras在本文中讨论了作为标准之一的BPEL所存在的问题。Pierre先给我们大致介绍了一个简单的并行流程,接着讨论了从业者在试图以一个结构化模型为基础表达非结构化流程时遇到的一系列问题。

基于范型的多语言编程

你是否仔细思考过,为什么人们总在讨论“要正确的语言做恰当的事情”?在这篇文章中,Sadek Drobi向你解释了为什么应该在系统内部混合使用多种语言。

采访与书摘《Pro Web 2.0 Application Development with GWT》

Jeff Dwyer就关于他的新书(《Pro Web 2.0 Application Development with GWT》)、GWT1.5以及创建可搜索的Ajax应用谈了一些他的见解。

时刻准备着,迎接IT业的春天

我们需要设身处地地为客户及客户的业务本身着想,与客户同舟共济。更多创新的思路、产品和模式也同样将为IT业带来新的出路。IT业并不需要坐以待毙,在春天到来之后,市场将会更加繁荣!