2010-11-03 81 views
0

爲了軟件測試的目的,我想創建生產數據庫的無菌克隆(所有數據都是空白的)。這樣我就可以每次對已知的一組記錄運行我的單元測試。我期待在單元測試中嘗試以編程方式進行此操作,這樣我就可以確保這些表格完全包含功能測試所需的測試數據。以編程方式從生產數據庫創建空白數據庫

我發現有關在C#中創建Access數據庫的以下information。注意:我知道Access可能不是最好的解決方案,但它足夠好!

我想知道,是否有一種使用TableAdapters(可能)複製空白Access數據庫文件中的生產數據庫模式(沒有任何數據)的方法?

回答

4

這樣做:

  • 創建訪問文件的副本;生產 - >測試
  • 連接數據庫
  • 運行DELETE * FROM [table]所有表的測試數據庫
  • enumerate all tables。跑了好幾次,如果你有FK的依賴,直到沒有錯誤 - 或TRUNCATE [table]的評論
  • compact數據庫
+2

'TRUNCATE'的工作速度肯定比'DELETE'快 – abatishchev 2010-11-03 10:12:35

0

我對使用Access作爲生產數據庫有不好的經驗。我不會推薦。要麼與SQLite或火鳥。其次,是的,你可以使用TableAdapters。您需要爲每個數據庫創建兩個連接。但我認爲可能有工具可以做到這一點。

編輯**

多大的數據庫?對於高達4GB,Oracle Express Edition可能會有所幫助。而且,從Oracle到Oracle的複製也很容易。

+0

我要清楚的是,生產數據庫是Oracle數據庫但爲了方便使用和攜帶我在想單元測試數據庫應該是Access。 – 2010-11-03 09:23:26

+0

對於測試,您可以使用任何東西,除非它與生產環境無關。 – RKh 2010-11-03 09:28:13

+0

根據測試(以及您對「單元」的定義),我通常會盡可能地嘗試複製現場活動。因此,有一個Oracle實例,然後像dbunit那樣將其置於已知狀態,以便測試和shell腳本使其「實時減數據」。 – 2010-11-03 15:06:32

相關問題