在以前的項目中, 用了一些業(yè)界流行的單元測試框架, 比如DUnit(for Delphi)和NUnit(for .NET). 但數(shù)據(jù)庫上面的程序很多時候沒有cover到. 尤其讓專職的DB developer 編寫stored procedure的單元測試代碼, 他們壓根沒有聽過. xUnit(JUnit/DUnit/NUnit)需要編Java/Delphi/.Net程序, 顯然不適合他們.
于是google之, 找到了開源項目DbUnit, 研究了一會兒, 還是需要編寫Java程序. 對于不熟悉Java的人來講, 難度太大, 而且維護這些Java測試Project也比較麻煩. 其實我也覺得沒有必要這么復(fù)雜, DB Developer應(yīng)該將時間用在優(yōu)化設(shè)計和優(yōu)化實現(xiàn), 而不是花過多的時間編寫復(fù)雜的測試代碼.
從InfoQ中文版曾經(jīng)有一篇文章(http://www.infoq.com/cn/news/2008/11/PDC-testing)講述,其中講到: 早些的討論普遍覺得數(shù)據(jù)庫方面被忽視了,大部分的數(shù)據(jù)庫開發(fā)人員很少或幾乎沒有單元測試的概念,也缺乏相關(guān)支持工具。于是開始構(gòu)思做一個專為DBA和DB developer使用的數(shù)據(jù)庫單元測試工具. 就有了AnyDbTest, 網(wǎng)站 http://www.anydbtest.com
AnyDbTest就是在者這樣的背景下出現(xiàn)的, 它是專門DBA和DB Developer設(shè)計的單元測試工具, 你不再需要編寫Java/.Net代碼, 你只需要編寫一個簡單的Xml文件, 在Xml文件中, 告訴AnyDbTest你要測試什么, 你期望的結(jié)果應(yīng)該是什么就可以了. 它提供了二十多個標準的Assertion, 包括超集, 子集, 集合相等, 真超集等等.
另外, 我制作了一個的tutorial頁面, http://www.anydbtest.com/tutorial.html, 從中能夠看到AnyDbTest的工作機制. 希望這個軟件能對大家的項目有所幫助. AnyDbTest的Express版本是免費的, 歡迎使用.