共用方式為


HOW TO:設定資料庫單元測試執行

更新:2007 年 11 月

藉由設定測試專案,您可以指定多項設定,控制如何執行資料庫單元測試。這些組態設定會儲存在測試專案的 app.config 檔案中。如果直接編輯這個檔案,新的值會出現在 [專案組態] 對話方塊中。

方案可以包含多個測試專案。每個測試專案都會包含一個 app.config 檔案 (也就是一組組態設定)。因此,方案可以包含幾組不同的資料庫單元測試 (每個測試專案都有一組),設定以不同的方式執行。

這些設定會控制您的測試如何連接到將要測試的資料庫、如何將「結構描述」(Schema) 從「資料庫專案」(Database Project) 部署到該資料庫,以及是否要使用「資料產生計劃」(Data Generation Plan) 填入資料庫:

  • 資料庫連接。請使用這個設定指定連接字串,用來連接到要測試的資料庫。如需詳細資訊,請參閱指定連接字串

  • 結構描述部署。「資料庫專案」是資料庫的離線表示 (offline representation)。資料庫專案代表「資料庫物件」(Database Object) 的結構,但不包含資料。當您在資料庫專案中變更「結構描述」之後,可以在實際資料庫中測試這些變更。在結構描述部署步驟中,您要測試的資料庫物件會從資料庫專案複製到要執行測試的資料庫。如需結構描述部署的詳細資訊,請參閱部署資料庫結構描述。

  • 資料庫狀態。藉由產生資料庫所需的測試資料,您可以在測試執行開始之前設定其狀態。您也可以從 TestInitialize 指令碼的備份複本還原資料庫,藉此設定資料庫狀態。如需這個方法的詳細資訊,請參閱資料庫單元測試中的指令碼

    若要指定要產生的資料,請建立資料產生計劃,在其中指定應包含測試資料的資料表和資料行。您也可以指定資料的形式。例如,您可以針對電話號碼產生適當位數的數字,或從內含清理測試資料的資料庫匯入虛構的客戶名稱。如需詳細資訊,請參閱使用資料產生計劃。

    注意事項:

    測試不會在方案資料夾中執行,而是在本機硬碟上的另一個資料夾中執行。雖然您可以設定測試部署的各部分,但通常不需要針對資料庫單元測試設定部署。如需測試部署的詳細資訊,請參閱測試部署概觀

指定連接字串

若要指定資料庫連接字串

  1. 按一下 [測試] 功能表上的 [資料庫測試組態]。

    [專案 'TestProject' 組態] 對話方塊隨即出現。

  2. 在 [資料庫連接] 底下,您可以執行下列動作:

    • 按一下要執行單元測試的資料庫連接。

    • 選取 [使用次要資料連接來驗證單元測試] 核取方塊,然後按一下清單中的資料庫連接,以對不同的資料庫連接驗證測試執行。

    • 按一下 [新增連接],將連接加入任一清單。您也可以按一下 [編輯連接] 修改現有連接的設定。

    這個步驟會建立 ExecutionContext 連接字串,用來執行資料庫單元測試中的測試指令碼。如果您也指定了次要連接,則也會建立 PrivilegedContext 連接字串。這個連接會在資料庫單元測試的測試指令碼以外,測試與資料庫的互動。如需詳細資訊,請參閱連接字串與權限概觀

  3. 按一下 [確定] 關閉 [專案 'TestProject' 組態] 對話方塊。

  4. 重建測試專案來套用組態變更。

部署資料庫結構描述

若要將資料庫專案的結構描述部署到資料庫

  1. 在 [方案總管] 中以滑鼠右鍵按一下資料庫專案,然後按一下 [建置]。

    當您建置資料庫專案時,會產生 Transact-SQL (T-SQL) 指令碼。在對資料庫執行這個指令碼時,會在該資料庫中重新建立資料庫專案的結構。

  2. 選取要設定的測試專案。

  3. 按一下 [測試] 功能表上的 [資料庫測試組態]。

    [專案 'TestProject' 組態] 對話方塊隨即出現。

  4. 在 [部署] 底下,您可以執行下列動作:

    • 選取 [執行測試前自動部署資料庫專案] 核取方塊,確定對資料庫專案所做的任何結構描述變更都會先認可,然後才執行測試。

    • 在 [資料庫專案] 底下,按一下要部署的資料庫專案,或按一下省略符號瀏覽其他專案。資料庫專案檔的副檔名為 .dbproj。

    • 在 [部署組態] 底下,按一下要部署的目標專案組態。選項包括 [偵錯]、[預設] 或 [發行]。不過,如果您建立單元測試的組態,該組態也會顯示為其中一個選項。

  5. 按一下 [確定] 關閉 [專案 'TestProject' 組態] 對話方塊。

    在測試執行開始時,會執行步驟 1 中所產生的 T-SQL 指令碼。這個動作會將結構描述部署到目標資料庫。

  6. 重建資料庫單元測試專案來套用組態變更。

    注意事項:

    如果您使用資料產生並將結構描述部署為單元測試專案的一部分,請清除 [如果可能遺失資料,即封鎖累加部署]。這個核取方塊會出現在資料庫專案屬性的 [建置] 索引標籤上。如果不清除這個核取方塊就嘗試部署結構描述,部署將會失敗。如需詳細資訊,請參閱 HOW TO:在部署到現有資料庫時控制資料遺失

使用資料產生計劃

若要在資料庫單元測試使用資料產生計劃

  1. 建立資料產生計劃。如需詳細資訊,請參閱 HOW TO:建立資料產生計畫

  2. 指定要使用資料產生計劃填入的資料表。如需詳細資訊,請參閱 HOW TO:指定要產生資料的資料表

  3. 指定這些資料表中要填入的資料行。如需詳細資訊,請參閱 HOW TO:指定要產生資料的資料行

  4. 儲存資料產生計劃並記下其名稱。

  5. 在 [方案總管] 中,按一下要設定的測試專案。

  6. 按一下 [測試] 功能表上的 [資料庫測試組態]。

    [專案 'TestProject' 組態] 對話方塊隨即出現。

  7. 在 [資料庫狀態] 底下,執行下列動作:

    • 選取 [執行單元測試前先產生測試資料] 核取方塊,在執行測試之前,先將資料產生計劃套用至資料庫專案。資料產生計劃的副檔名為 .dgen。

    • 在清單中按一下要套用的資料產生計劃,或按一下省略符號瀏覽並尋找計劃。

    • 選取 [產生測試資料前先清除資料庫] 核取方塊,覆寫指定資料庫專案中的現有測試資料庫。

  8. 按一下 [確定] 關閉 [專案 'TestProject' 組態] 對話方塊。

    叫用資料產生計劃的程式碼即會加入測試專案的 AssemblyInitialize 方法,您可以在名為 DatabaseSetup.cs 或 DatabaseSetup.vb 檔案中找到這個方法。如果現在就執行資料庫單元測試,資料產生計劃會在測試執行一開始填入資料庫一次。

    注意事項:

    產生測試資料的作用無法回復。

  9. (選擇項) 若要在測試執行中使用這個資料產生計劃多次,從 AssemblyInitialize 方法複製叫用計劃的程式碼,然後貼到資料庫單元測試的其他方法。

  10. 重建測試專案來套用組態變更。

請參閱

工作

HOW TO:建立資料產生計畫

概念

Database Edition 的用語概觀