10 月,开发者不可错过的开源大数据大会-2021 WeDataSphere 社区大会深圳站 了解详情
写点什么

Autotest:一款测试辅助工具

2007 年 12 月 14 日

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

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

gem install zentestZentest 可以帮助你撰写单元测试,并且将测试与你的代码进行同步,而 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

2007 年 12 月 14 日 20:015819
用户头像

发布了 74 篇内容, 共 98684 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

小伙伴想写个 IDEA 插件么?这些 API 了解一下!

程序员小航

IDEA idea插件 教程 API IntelliJ IDEA

无意中参加了infoQ的一期活动,获得了所有奖项,哈哈哈。。。

诸葛小猿

InfoQ 奖品

极客时间 - 架构师培训 - 9 期作业

Damon

【面试必问】Spring中的事务管理详解

只喝纯牛奶

JVM详解之:类的加载链接和初始化

程序那些事

Java JVM GC 加载

F5G+X:给5G一个伙伴,给千行百业一个拥抱

脑极体

Dockerfile你值得拥有

北漂码农有话说

Docker

刘华:事实证明,假敏捷都比瀑布优秀

刘华Kenneth

DevOps 敏捷 软件开发

架构师训练营第九周学习总结

张明森

架构师训练营第九周作业

张明森

谈谈敏捷中的那些模式

Bob Jiang

敏捷 敏捷开发 敏捷教练

Docker 网络

北漂码农有话说

Docker

Python 多进程之间共享变量

AlwaysBeta

Python 进程

微碳系:我心中的宇宙

Geek_116789

格一格你的情欲念

王进行

30岁的二三事

大唐小生

总结 个人感悟

RRedis系列(八):缓存到底该如何做到高可用?

z小赵

redis 分布式系统 高并发系统设计

新生必备清单:不想成为虚度青春的“小透明”,手机应该怎样选?

脑极体

搭乘政策红利“快车” 欧科云链助力区块链人才培养

CECBC区块链专委会

金融行业区块链技术应用有了“安全符”

CECBC区块链专委会

基于 opentracing + Jaeger 实现全链路追踪 ----理论部分

是老郭啊

Go 全链路监控 OpenTracing Jaeger

今天你内卷了吗?

池建强

个人成长 内卷化

nginx配置文件

张明森

“PlusToken”跨国网络传销案告破,涉案400亿元!

CECBC区块链专委会

Scrum Master是否需要懂技术

Bob Jiang

敏捷 敏捷开发 敏捷教练 ScrumMaster

什么是算法的大O表示法

码农神说

算法 时间复杂度 Java算法 大O

来了来了!Docker安装及运行原理

程序员的时光

Java Docker 微服务

敏捷教练和Scrum Master - 敏捷转型中的两个重要角色的对比

Bob Jiang

Scrum 敏捷教练 ScrumMaster

LeetCode题解:70. 爬楼梯,递归+哈希表,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

稳定匹配:幸福不靠等,脱单要主动

KAMI

生活 算法 方法论

JVM参数手册

Rayjun

JVM GC

Autotest:一款测试辅助工具-InfoQ