HOW TO:設定資料庫單元測試執行
這個主題適用於:
Visual Studio Ultimate |
Visual Studio Premium |
Visual Studio Professional |
Visual Studio Express |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
藉由設定測試專案,您可以指定多項設定,控制如何執行資料庫單元測試。 這些組態設定會儲存在測試專案的 app.config 檔案中。 如果直接編輯這個檔案,新的值會出現在 [專案組態] 對話方塊中。
方案可以包含多個測試專案。 每個測試專案都會包含一個 app.config 檔案 (也就是一組組態設定)。 因此,方案可以包含幾組不同的資料庫單元測試 (每個測試專案都有一組),設定以不同的方式執行。
這些設定會控制您的測試如何連接到將要測試的資料庫、如何將「結構描述」(Schema) 從「資料庫專案」(Database Project) 部署到該資料庫,以及是否要使用「資料產生計劃」(Data Generation Plan) 填入資料庫:
資料庫連接。 請使用這個設定指定連接字串,用來連接到要測試的資料庫。 如需詳細資訊,請參閱指定連接字串
結構描述部署。 「資料庫專案」(Database Project) 是資料庫的離線表示。 資料庫專案代表「資料庫物件」(Database Object) 的結構,但不包含資料。 當您在資料庫專案中變更「結構描述」(Schema) 之後,可以在實際資料庫中測試這些變更。 在結構描述部署步驟中,您要測試的資料庫物件會從資料庫專案複製到要執行測試的資料庫。 如需結構描述部署的詳細資訊,請參閱部署資料庫結構描述。
資料庫狀態。 藉由產生資料庫所需的測試資料,您可以在測試執行開始之前設定其狀態。 您也可以從 TestInitialize 指令碼的備份複本還原資料庫,藉此設定資料庫狀態。 如需這個方法的詳細資訊,請參閱資料庫單元測試中的指令碼。
若要指定要產生的資料,請建立「資料產生計劃」(Data Generation Plan),在其中指定應包含測試資料的資料表和資料行。 您也可以指定資料的形式。 例如,您可以針對電話號碼產生適當位數的數字,或從內含清理測試資料的資料庫匯入虛構的客戶名稱。 如需詳細資訊,請參閱使用資料產生計劃。
注意事項
測試不會在方案資料夾中執行,而是在本機硬碟上的另一個資料夾中執行。 雖然您可以設定測試部署的各部分,但通常不需要針對資料庫單元測試設定部署。 如需測試部署的詳細資訊,請參閱執行測試。
指定連接字串
若要指定資料庫連接字串
按一下 [測試] 功能表上的 [資料庫測試組態]。
[專案 'TestProject' 組態] 對話方塊隨即出現。
在 [資料庫連接] 底下,您可以執行下列動作:
按一下要執行單元測試的資料庫連接。
選取 [使用次要資料連接來驗證單元測試] 核取方塊,然後按一下清單中的資料庫連接,以對不同的資料庫連接驗證測試執行。
按一下 [新增連接],將連接加入任一清單。 您也可以按一下 [編輯連接] 修改現有連接的設定。
這個步驟會建立 ExecutionContext 連接字串,用來執行資料庫單元測試中的測試指令碼。 如果您也指定了次要連接,則也會建立 PrivilegedContext 連接字串。 這個連接會在資料庫單元測試的測試指令碼以外,測試與資料庫的互動。 如需詳細資訊,請參閱連接字串與權限概觀。
按一下 [確定] 關閉 [專案 'TestProject' 組態] 對話方塊。
重建測試專案來套用組態變更。
部署資料庫結構描述
若要將資料庫專案的結構描述部署到資料庫
在 [方案總管] 中以滑鼠右鍵按一下資料庫專案,然後按一下 [建置]。
當您建置資料庫專案時,會產生 Transact-SQL 指令碼。 在對資料庫執行這個指令碼時,會在該資料庫中重新建立資料庫專案的結構。
選取要設定的測試專案。
按一下 [測試] 功能表上的 [資料庫測試組態]。
[專案 'TestProject' 組態] 對話方塊隨即出現。
在 [部署] 底下,您可以執行下列動作:
選取 [執行測試前自動部署資料庫專案] 核取方塊,確定對資料庫專案所做的任何結構描述變更都會先認可,然後才執行測試。
在 [資料庫專案] 底下,按一下要部署的資料庫專案,或按一下省略符號瀏覽其他專案。 資料庫專案檔的副檔名為 .dbproj。
在 [部署組態] 底下,按一下要部署的目標專案組態。 選項包括 [偵錯]、[預設] 或 [發行]。 不過,如果您建立單元測試的組態,該組態也會顯示為其中一個選項。
按一下 [確定] 關閉 [專案 'TestProject' 組態] 對話方塊。
在測試回合開始時,系統會執行步驟 1 中所產生的 Transact-SQL 指令碼。這個動作會將結構描述部署到目標資料庫。
重建資料庫單元測試專案來套用組態變更。
注意事項
如果您使用資料產生並將結構描述部署為單元測試專案的一部分,請清除 [如果可能遺失資料,即封鎖累加部署]。 這個核取方塊會出現在資料庫專案屬性的 [建置] 索引標籤上。 如果不清除這個核取方塊就嘗試部署結構描述,部署將會失敗。 如需詳細資訊,請參閱 HOW TO:在部署到現有資料庫時控制資料遺失。
使用資料產生計劃
若要在資料庫單元測試使用資料產生計劃
建立資料產生計劃。 如需詳細資訊,請參閱 HOW TO:建立資料產生計劃。
指定要使用資料產生計劃填入的資料表。 如需詳細資訊,請參閱 HOW TO:指定要產生資料的資料表。
指定這些資料表中要填入的資料行。 如需詳細資訊,請參閱 HOW TO:指定要產生資料的資料行。
儲存資料產生計劃並記下其名稱。
在 [方案總管] 中,按一下要設定的測試專案。
按一下 [測試] 功能表上的 [資料庫測試組態]。
[專案 'TestProject' 組態] 對話方塊隨即出現。
在 [資料庫狀態] 底下,執行下列動作:
選取 [執行單元測試前先產生測試資料] 核取方塊,在執行測試之前,先將資料產生計劃套用至資料庫專案。 資料產生計劃的副檔名為 .dgen。
在清單中按一下要套用的資料產生計劃,或按一下省略符號瀏覽並尋找計劃。
選取 [產生測試資料前先清除資料庫] 核取方塊,覆寫指定資料庫專案中的現有測試資料庫。
按一下 [確定] 關閉 [專案 'TestProject' 組態] 對話方塊。
可叫用資料產生計劃的程式碼即會加入至您測試專案的 AssemblyInitialize 方法,您可以在名稱為 DatabaseSetup.cs 或 DatabaseSetup.vb 的檔案中找到該方法。 如果您立即執行資料庫單元測試,則資料產生計劃會在測試回合開始時填入資料庫一次。
注意事項
產生測試資料的作用無法回復。
(選擇項) 若要在測試執行中使用這個資料產生計劃多次,從 AssemblyInitialize 方法複製叫用計劃的程式碼,然後貼到資料庫單元測試的其他方法。
重建測試專案來套用組態變更。