我为什么要开发AnyDbTest数据库单元测试工具

软件做了好几年了,  编程语言也由Turbo C-->VB-->Delphi-->C#不断转换, 始终不变的一点是, 一直和数据库打交道, 推崇极限编程XP, 也尽力在项目中实践XP/TDD.

在以前的项目中, 用了一些业界流行的单元测试框架, 比如DUnit(for Delphi)和NUnit(for .NET). 但数据库上面的程序很多时候没有cover到. 尤其让专职的DB developer 编写stored procedure的单元测试代码, 他们压根没有听过. xUnit(JUnit/DUnit/NUnit)需要编Java/Delphi/.Net程序, 显然不适合他们.

于是google之, 找到了开源项目DbUnit, 研究了一会儿, 还是需要编写Java程序.  对于不熟悉Java的人来讲, 难度太大, 而且维护这些Java测试Project也比较麻烦. 其实我觉得没有必要这么复杂, DB Developer应该将时间用在优化设计和优化实现, 而不是花过多的时间编写这些Java测试代码.

InfoQ中文版曾经有一篇文章(http://www.infoq.com/cn/news/2008/11/PDC-testing)讲述,其中讲到: 早些的讨论普遍觉得数据库方面被忽视了,大部分的数据库开发人员很少或几乎没有单元测试的概念,也缺乏相关支持工具。于是, 开始构思做一个专为DBA和DB developer使用的数据库单元测试工具. 就有了AnyDbTest, 网站 http://anydbtest.codeplex.com

AnyDbTest是专门DBA和DB Developer设计的单元测试工具, 你不再需要编写Java/.Net代码, 只需要编写一个简单的Xml文件, 在Xml文件中, 告诉AnyDbTest你要测什么, 你期望的结果是什么就可以了. 它提供了39个标准的Assertion, 包括超集, 子集, 集合相等, 真超集等等.

另外, 我制作了一个的tutorial页面, http://anydbtest.codeplex.com/documentation, 从中能够看到AnyDbTest的工作机制. 希望这个软件能对大家的项目有所帮助, 欢迎使用. 

注: AnyDbTest原网站http://www.anydbtest.com已经功成身退, 不再维护.

posted @ 2010-11-17 21:41  harrychinese  阅读(2225)  评论(8编辑  收藏  举报