直播预约通道开启!2021腾讯数字生态大会邀您共探产业发展新机遇! 了解详情
写点什么

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:015751
用户头像

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

关注

评论

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

带宽、延时、吞吐率、PPS 这些都是啥?

小林coding

Linux 操作系统 网络

物联网打工人必备:LiteOS Studio图形化调测能力

华为云开发者社区

互联网 LiteOS 打工人

一文带你了解传统手工特征的骨龄评估方法的发展历史

华为云开发者社区

方法 骨龄 评估

【年终总结】mybatis常见注解

田维常

mybatis

SQL:我为什么慢你心里没数吗?

Java架构师迁哥

必须清除互联网世界的毒瘤:网络谣言背后存在病态心理

石头IT视角

5. 穿过拥挤的人潮,Spring已为你制作好高级赛道

YourBatman

Spring Framework 类型转换 Converter

组态软件特征分析!同样都是拖拉拽,为什么别人的页面这么好看?

一只数据鲸鱼

物联网 数据采集 监控管理平台 组态软件

源码解析Synchronized同步方法的八种使用场景,收藏

小Q

Java 学习 架构 面试 多线程

源码解析Synchronized同步方法的八种使用场景,收藏

996小迁

Java 源码 架构 面试 synchronized

anyRTC加持AI,打造下一代实时音视频引擎

anyRTC开发者

人工智能 android 音视频 WebRTC RTC

IPFS质押挖矿系统开发方案

系统开发咨询:I76-883I-5I52 邓森

完全懵掉的电话面试

escray

面经 面试经历 101次面试 七日更 十日谈

堪称完美!阿里架构师亲自手撕”Spring Boot实战笔记“用60个案例给你整的明明白白

比伯

Java 编程 程序员 架构 技术宅

KKR四币连发挖矿系统软件APP开发

开發I852946OIIO

系统开发

2020年,关于【区块链运营】工作的11条思考

猫Buboo

比特币 区块链+

23 种设计模式的有趣见解

xcbeyond

设计模式 七日更

区块链多币种钱包app系统开发

系统开发咨询:I76-883I-5I52 邓森

Kafka的控制器controller详解

数据社

kafka 七日更

被阿里、腾讯、华为追捧为最牛逼的 Java 框架你知道是什么吗?

Java架构师迁哥

源码输出纯净版SSM架构,收藏直接CV使用它不香吗?

小Q

Java 学习 编程 面试 ssm

秒杀系统设计的挑战和问题(转载)

jorden wang

iOS 崩溃分析

ios 崩溃分析

基于App SDK和API搭建无人自习室等无人场景

IoT云工坊

物联网 智慧琴房 24小时无人自习室 24小时自助游戏厅 共享办公室

区块链商城系统开发模式制作

系统开发咨询:I76-883I-5I52 邓森

阿里技术官亲荐“998页的应届生面试手册”看完才发现,原来求职也没那么难!

比伯

Java 程序员 面试 编程语言 计算机

干货时间:聊聊DevOps下的技术系列之契约测试

华为云开发者社区

DevOps 测试 交互

天源迪科获2020年度中国产业供应链(中央企业集采供应链)百强企业荣誉

DT极客

Spring Cloud微服务实战

田维常

微服务

还记得你的时间胶囊吗?

熊斌

个人成长 七日更

BitQy交易所软件系统开发|BitQy交易所APP开发

开發I852946OIIO

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

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