2008-09-29 35 views
3

我們使用MS SQL Server和C#。我們的數據庫在sourse控制下,我會告訴你一些我們實現的細節。我們實施了兩項操作:再次在源代碼管理下的數據庫!

  1. 將數據庫導出爲純文本文件。數據庫模式文件: tables.sql relationships.sql views.sql ... 和表格內容的文件: 數據/ table1.txt 數據/ table2.txt ... 很容易檢查數據庫更改使用源代碼控制日誌,因爲所有這些文件都是純文本格式。 Imlementation基於來自命名空間Microsoft.SqlServer.Management.Smo的類。

  2. 從這個純文本文件導入數據庫。實現很簡單 - 只需從* .sql文件執行sql語句,然後執行一堆插入。

所以我們有兩個bat文件:create-test-databse.bat和export-test-database.bat。當開發人員需要新的測試數據庫時,他只需執行bat-file並等待一分鐘。每個需要數據庫的功能測試都會創建一個新數據庫,然後使用它並殺死它。但我應該說這不是很快的操作。 :(

工具,你用那麼是什麼把你的數據庫源代碼控制之下? 我的意思是,你如何實施操作例如「創建測試數據庫」和「出口測試數據庫」?

回答

1

我們使用Visual Studio對於數據庫專業人員,不要離開家,

0

我使用VSTS的DB優點,你指出它在你的SQL服務器,它分析你的數據庫併爲你創建單個文件,你甚至可以讓它生成測試爲您的數據,下一個版本將包括對第三方提供商的支持(想想Oracle,MySQL,DB2)

真正偉大的功能在這裏是驗證。我們發現我們的數據庫中的部分內容已經完全損壞(它們已經退化,不再被代碼使用)。它基本上可以根據需要部署數據庫。

2

我想你在這裏問兩個問題。首先是如何讓你的數據庫在源代碼控制之下。您的解決方案很有趣,我也使用了Visual Studio Team Edition for Database Professionals(這裏是我在TDD of stored procedures上使用它編寫的教程)

第二個是如何設置數據庫以進行集成測試。設置和拆除整個數據庫似乎可能有點矯枉過正。那裏有幾種解決方案。我用過DBFit。 Roy Osherove發表了一款名爲XtUnit的工具,但我還沒有玩過。而且,當然,您可以始終設置您的測試,以在SetUp中執行事務啓動,並在拆卸過程中執行回滾。