2013-08-21 203 views
0

我正在运行Oracle 11g SE1。“单元”测试数据库

只是不知道是否有是,让我来测试(大多只读)模式的数据完整性的任何工具。从本质上讲,我想要做的是有一些查询每晚运行,看看他们是否返回预期的结果。例如:

SELECT COUNT(*) FROM PATIENTS WHERE DISEASE = 'Clone-Killing Nanovirus'; 
Expected result : 59. 

人们通常如何进行此类测试?

+0

我听说过使用http://dbunit.sourceforge.net/。 – Meredith

+0

我更关心为什么有人用只读数据搞乱了。排序出来,这可能是“我需要弄乱操作”的一部分 –

+0

@TonyHopkinson我们偶尔更新数据(我们发布更新查询)......但大部分数据保持不变 – MadSeb

回答

0

你可以批了你的查询和运行一个简单的使用perl脚本DBI将运行的查询,并检查他们对一个公认的宽容和电子邮件通知您,如果事情没有达到阈值。我知道我已经写过这样的db检查代码,以确保项目在阈值内。因为DBI模块可以连接到数据库,所以Perl是一种很好的工具,然后您可以运行一些固定的查询并使用MIME包轻松地向您发送电子邮件。 http://www.perl.com/pub/1999/10/DBI.html

1

我用SQLUnit和写它here。我不相信任何新的发展正在完成,但它应该实现你的目标。

SQL Developer(免费,如啤酒)也有一个Unit Testing框架。我已经安装了它,就是这样。我想更多地使用它,但过去几年我一直在使用BI,因此没有外部压力来学习它。

要营造良好的非常简单的测试,所以无论是那些应该为你工作。下一步就是让它们按计划运行(cron,windows scheduler等),或者您可以使用像Atlassian的Bamboo(尚未使用它)的持续集成工具发疯。

当然,你可以完全跳过工具和只写了那些在命令行称为脚本。花式会让你把结果写到数据库表中,所以你可以很容易地将它变成皮肤,简单的方法是将结果输送到一个文本文件并每天检查一次。

希望这会有所帮助。