2013-08-21 297 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(尚未使用它)的持續集成工具發瘋。

當然,你可以完全跳過工具和只寫了那些在命令行稱爲腳本。花式會讓你把結果寫到數據庫表中,所以你可以很容易地將它變成皮膚,簡單的方法是將結果輸送到一個文本文件並每天檢查一次。

希望這會有所幫助。