2010-06-22 61 views
0

我將爲我的應用程序創建集成測試。我希望我的集成測試不會在生產數據庫中執行。我希望在測試執行開始之前,我的繼續集成服務器(團隊城市)創建我的數據庫的副本,並對其執行集成測試。任何方法或最佳實踐?動態創建測試數據庫副本

編輯:

我想automatizate這個過程(以文章或論壇的任何鏈接)。

回答

2

這裏是我會做

  1. 備份和恢復生產數據庫的整合服務器的步驟。
  2. 刪除/復位從整合數據庫的私人信息(信用卡,SSN,密碼),這樣由於您使用的SQL Server測試不通過實際生產數據

工作,這是很容易用做SSIS。

步驟:

  1. 創建SSIS包
  2. 添加任務複製數據庫或備份從生產恢復數據庫集成
  3. 添加的查詢任務,每個表清理操作
  4. 保存包SQL Server
  5. 從SQL Server中運行作業或在SQL Scheduler中創建作業以定期運行

要了解SSIS,一本好書是微軟出版社提供的SQL Server Integration Services Step By Step。

爲SQL Server好論壇

+0

我想自動化這個過程(任何鏈接到文章或論壇)。 – 2010-06-22 14:13:16

+0

編輯回覆評論。 – 2010-06-22 15:02:15

1

你可能不希望構建服務器觸及生產數據庫(我當然不會)。

我會創建一個工作來從.bak文件或腳本加載數據庫(如果它不會太大,您可以對其進行版本化),然後在運行測試之前運行該作業。

1

我目前的工作來完成相同的任務。我已經安裝了惡性我的機器上,然後創建以下文件夾

./servername/databasename/release 
./servername/databasename/restore 
./servername/databasename/rollback 
./servername/databasename/test 

的計劃是然後爲每個任務(釋放,恢復,回滾,測試)創建惡性目標。

./servername/databasename/restore/000001.set_database_offline.sql 
./servername/databasename/restore/000002.restore_database.sql 
./servername/databasename/restore/000003.fix_orphaned_logins.sql 
./servername/databasename/restore/000004.do_some_operation_example_upgrade_table_x.sql 

然後,我創建了所有帶數字前綴的腳本,以控制執行順序。這背後的想法是創建命名與我的文件夾匹配的構建任務,所以我可以執行下面列出的命令,這將快速執行目錄中的所有腳本。

nant restore 
nant release 
nant rollback 
nant test 

我想我需要增強已經有單獨的測試釋放和回滾的過程,但這是一個正在進行的工作。

讓我知道你是否選擇遵循相同的路徑。合作並分享一個簡單的可重複流程將會非常酷。

理由這樣做是: 1.自動化 2.重複性 3.一致性 4.添加的所有代碼到源代碼管理

目標是要能夠部署和測試跨多個環境,做促進代碼生產時不會更改代碼。

Regards,

0

我一直在做這至少兩年。這並不複雜。我從腳本創建測試數據庫,也從腳本填充測試數據,所有這些都是從NUnit FixtureSetup步驟調用的。沒有任何問題。