2010-05-21 149 views
5

我想回歸測試t-sql存儲過程。我的想法是爲每個SP指定多個輸入參數集。 SP應該用這些參數執行,結果應寫入光盤。下次新結果應與之前存儲的結果進行比較。迴歸測試T-SQL存儲過程

有沒有人知道這樣的東西的好工具?不應該很難實現,但實際上你需要像「忽略該列」或類似的功能。我會認爲這樣的工具應該已經存在!?

歡呼聲, 阿希姆

+0

只提供輸入和預期的輸出聲音,更像是測試功能。存儲過程可以使用輸入參數以外的數據,並且可能有副作用,例如將數據寫入表中,因此您還需要通過填充適當的表來爲測試設置階段,並將任何副作用保存爲結果。 – mdma 2010-05-27 17:02:09

回答

5

我會用一個單元測試套件像DbUnit。 DbUnit將設置您的數據庫,運行存儲過程,然後驗證結果,並可選地回滾數據庫以準備進行下一個測試。它將輸入數據和預期結果表示爲XML文件,您可以從數據庫中已有的數據和模式進行逆向工程。

對於迴歸測試,您使用db單元運行一次測試下的存儲過程,並收集輸出(不驗證它)。這定義了您運行後續迴歸測試的基準。

DbUnit對錶格數據有很好的抽象,它可以從CVS文件,XML文件或數據庫對象中獲取。

測試輸入和預期結果很容易區分和存儲在版本控制中,因爲它們存儲爲XML。如前所述,您還可以加載和保存CSV文件中的數據。

DbUnit是測試數據庫功能的好工具,project pageFAQ是很好的入門資源。

+0

聽起來不錯,但似乎是一個Java工具。有沒有人知道.Net的類似工具? – Achim 2010-06-01 22:35:49

+0

對不起,你沒有在你的問題中提到一種語言。對於.NET,有NDbUnit - http://code.google.com/p/ndbunit/。該項目頁面提到它從DbUnit中借鑑了很多想法,所以它應該是一個很好的匹配。 – mdma 2010-06-01 23:12:40

+0

我剛碰到這個 - TSQLUnit - http://sourceforge.net/apps/trac/tsqlunit/ – mdma 2010-06-03 19:09:48