2009-06-22 24 views
6

幾年來,我一直在使用名爲qmTest的測試工具,它允許我爲某些Firebird數據庫進行測試驅動的數據庫開發。我爲新功能(表,觸發器,存儲過程等)編寫測試,直到失敗,然後修改數據庫直到測試通過。如果有必要,我會在測試之前做更多的工作,直到它再次失敗,然後修改數據庫直到測試通過。一旦功能測試完成並通過100%的時間,我將其保存在數據庫的其他測試套件中。在繼續進行其他測試或部署之前,我將所有測試作爲套件運行,以確保沒有任何問題被破壞。測試可以依賴於其他測試,並且結果被記錄並顯示在瀏覽器中。SQL Server 2005的測試優先開發工具?

這裏沒有新東西,我確定。

我們的商店致力於在MSSQLServer上實現標準化,並且我希望使用相同的過程來開發我們的數據庫。有誰知道允許或鼓勵這種發展的工具嗎?我相信團隊系統確實如此,但我們現在並不擁有這一點,而且可能一段時間以後也不會。

我不反對腳本,但會歡迎更多的圖形環境。

有什麼建議嗎?

回答

2

團隊系統可能是最有名的解決方案,但您也可以嘗試TSQLUnit(SourceForge)。

我自己並沒有使用它,但this article做了一個體面的工作來介紹它。

1

在我無法訪問db pro團隊系統的項目中,我使用了與msbuild結合的sql腳本和msbuild的sdc任務庫(http://www.codeplex.com/sdctasks)。 msbuild腳本調用sdc任務,以特定順序(例如,創建數據庫,創建表等)和特定連接字符串運行我的sql腳本。腳本總是檢查一個對象是否存在,並首先拆卸並重新構建它。

的SQL和腳本的MSBuild我在一個普通的Visual Studio數據庫項目的地方(這沒有什麼特別之處,所以你可以選擇使用一個簡單的空項目),所以一切都是源控制。

有了這樣一組腳本,您可以爲每次測試運行設置一個新的數據庫。然後你可以使用插入腳本來填充數據並運行單元測試。

這些腳本也可用於在不同的環境(DEV/TST/QUA/...)從頭開始建立數據庫

1

我能夠充分apply a test driven development style against SQL Server databases using TSQLUnit有用。我跟着你有第一寫入單元測試存儲過程失敗,然後作出改變所需的測試通過所描述的相同的流。隨着時間的推移,我在執行驗證時還建立了一套測試,在進行任何新更改時沒有任何問題。

有一些艱難的斑點(包括以書面形式對現有的存儲過程的測試極端困難),但它特別工作了架構更改。不過,我建議看看T.S.T. the T-SQL Test Too1,它不像TSQLUnit(I had to roll my own)內置支持斷言。

+0

+1謝謝指着我T.S.T.,它看起來非常好。 – 2010-09-28 20:24:20