共用方式為


HOW TO:從 Team Foundation Build 執行資料庫單元測試

您可以使用 Team Foundation Build,在建置驗證測試 (BVT) 中執行「資料庫單元測試」(Database Unit Test)。 您可以設定資料庫單元測試來部署資料庫、產生測試資料,然後執行所選的測試。 如果您不熟悉 Team Foundation Build,您應該先檢閱下列資訊,然後再遵循本主題的程序進行:

在您使用這些程序之前,您必須先執行下列工作來設定工作環境:

  • 安裝 Team Foundation Build 和 Team Foundation 版本控制。 您或許需要在不同的電腦上安裝 Team Foundation Build 和 Team Foundation 版本控制。

  • 連接至 Visual Studio Team Foundation Server 的執行個體。 如需如何連接到 Team Foundation Server 的詳細資訊,請參閱 How to: Connect to a Team Project in Team Foundation Server

設定工作環境之後,您必須在 Visual Studio Premium 或 Visual Studio Ultimate 中依照下列步驟執行: 

  1. 建立資料庫專案。

  2. 為資料庫專案匯入或建立結構描述和物件。

  3. 設定用於建置和部署的資料庫專案屬性。

  4. 建立一個或多個資料庫單元測試。

  5. 將包含資料庫專案及資料庫單元測試專案的方案加入到版本控制中,並簽入所有檔案。

本主題的程序會描述如何建立組建定義,以便在自動化測試回合中執行資料庫單元測試:

  1. 設定測試設定以在 x64 組建代理程式上執行資料庫單元測試

  2. 將測試指派給測試分類 (選擇性)

  3. 修改測試專案

  4. 簽入方案

  5. 建立組建定義

  6. 執行新組建定義

在組建電腦上執行資料庫單元測試

當您在組建電腦上執行資料庫單元測試時,單元測試可能會找不到資料庫專案檔 (.dbproj) 或資料產生計劃 (.dgen)。 因為 app.config 檔是使用相對路徑參考這些檔案,所以會發生這個問題。 此外,如果找不到想要用來執行資料庫單元測試之 SQL Server 的執行個體,資料庫單元測試也可能會失敗。 如果儲存在 app.config 檔中的連接字串對組建電腦是無效的,就會發生這個問題。

若要解決這些問題,您必須在 app.config 中指定覆寫區段,以便使用 Team Foundation Build 環境特有的組態檔來覆寫 app.config。 如需詳細資訊,請參閱本主題後面的<修改測試專案>。

設定測試設定以在 x64 組建代理程式上執行資料庫單元測試

您必須先設定測試設定以變更主機處理序平台,才能在 x64 組建代理程式上執行資料庫單元測試。

若要指定主機處理序平台

  1. 開啟包含您要進行設定之測試專案的方案。

  2. 在 [方案總管] 的 [方案項目] 資料夾中,按兩下 Local.testsettings 檔案。

    [測試設定] 對話方塊隨即出現。

  3. 按一下清單中的 [主機]。

  4. 在詳細資料窗格的 [主機處理序平台] 中,按一下 [MSIL] 將測試設定為在 x64 組建代理程式上執行。

  5. 按一下 [套用]。

將測試指派給測試分類 (選擇性)

一般來說,當您建立組建定義以執行單元測試時,就會指定一個或多個測試分類。 指定之分類中的所有測試都會在組建執行時執行。

若要將測試指派給測試分類

  1. 開啟 [測試檢視] 視窗。

  2. 選取測試。

  3. 在 [屬性] 窗格中,按一下 [測試分類],然後按一下最右邊資料行中的省略符號 (...)。

  4. 在 [測試分類] 視窗的 [加入新分類] 方塊中,輸入新測試分類的名稱。

  5. 按一下 [加入],然後按一下 [確定]。

    新的測試分類將指派給您的測試,並且可供其他測試透過其屬性來使用。

修改測試專案

根據預設,Team Foundation Build 在建置單元測試專案時,會根據專案的 app.config 檔建立組態檔。 資料產生計劃與資料庫專案的路徑會以相對路徑的形式儲存在 app.config 檔中。 在 Visual Studio 中運作的相對路徑將無法運作,因為 Team Foundation Build 放置組建後檔案的位置與執行單元測試時不同。 此外,您的 app.config 檔會包含指定所要測試之資料庫的連接字串。 如果單元測試必須連接至與建立測試專案所使用之資料庫不同的資料庫,也需要為 Team Foundation Build 準備不同的 app.config 檔。 您可以透過在下個程序中進行修改,設定測試專案與組建伺服器,讓 Team Foundation Build 使用不同的組態。

重要事項重要事項

您必須為每個測試專案 (.vbproj 或 .vsproj) 執行此程序。

若要指定 Team Foundation Build 的 app.config 檔案

  1. 在 [方案總管] 中,以滑鼠右鍵按一下 app.config 檔案,然後按一下 [複製]。

  2. 以滑鼠右鍵按一下測試專案,然後按一下 [貼上]。

  3. 以滑鼠右鍵按一下名為 [app.config 的複本] 的檔案,然後按一下 [重新命名]。

  4. 輸入 BuildComputer.dbunitttest.config 並按下 ENTER,其中 BuildComputer 是執行組建代理程式的電腦名稱。

  5. 按兩下 BuildComputer.dbunitttesting.config。

    此組態檔隨即在編輯器中開啟。

  6. 加入 Sources 資料夾的資料夾層級以及與方案具有相同名稱的子資料夾,藉以變更 .dbproj 和 .dgen 檔案的相對路徑。 例如,如果組態檔一開始包含下列項目:

    <DatabaseDeployment DatabaseProjectFileName="..\..\..\SalesDB\SalesDB.DBProj" Configuration="Debug" />
    

    請依照下列方式更新檔案:

    <DatabaseDeployment DatabaseProjectFileName="..\..\..\Sources\SalesDB\SalesDB.DBProj" Configuration="Debug" />
    

    針對資料產生檔案重複此程序 (如果有指定該檔案的話)。

    完成之後,您的 BuildComputer.dbunitttest.config 檔案應該類似於下列範例:

    <DatabaseUnitTesting>
            <DatabaseDeployment DatabaseProjectFileName="..\..\..\Sources\UnitTest\UnitTest\UnitTest.dbproj"
                Configuration="Debug" />
            <DataGeneration ClearDatabase="true" />
            <ExecutionContext Provider="System.Data.SqlClient" ConnectionString="Data Source=.\SQLEXPRESS;Initial Catalog=UnitTestB;Integrated Security=True;Pooling=False"
                CommandTimeout="30" />
            <PrivilegedContext Provider="System.Data.SqlClient" ConnectionString="Data Source=.\SQLEXPRESS;Initial Catalog=UnitTestB;Integrated Security=True;Pooling=False"
                CommandTimeout="30" />
    </DatabaseUnitTesting>
    
  7. 更新 ExecutionContext 和 PrivilegedContext 的 ConnectionString 屬性,以便指定您想要部署之目標資料庫的連接。

  8. 在 [檔案] 功能表上,按一下 [全部儲存]。

  9. 在 [方案總管] 中,按兩下 app.config。

  10. 在編輯器中,將 <DatabaseUnitTesting> 節點更新為符合下列內容:

    <DatabaseUnitTesting AllowConfigurationOverride="true">
    

    一旦進行這項變更之後,就表示您允許 Team Foundation Build 使用已建立的取代組態檔。

  11. 在 [檔案] 功能表上,按一下 [全部儲存]。

    接著,您必須將 Local.testsettings 更新為包含已自訂的組態檔。

若要自訂 Local.testsettings 來部署已自訂的組態檔

  1. 在 [方案總管] 中,按兩下 Local.testsettings。

    [測試設定] 對話方塊隨即出現。

  2. 在分類的清單中,按一下 [部署]。

  3. 選取 [啟用部署] 核取方塊。

  4. 按一下 [加入檔案]。

  5. 在 [加入部署檔案] 對話方塊中,指定您已建立的 BuildComputer.dbunitttest.config 檔案。

  6. 按一下 [套用]。

  7. 按一下 [關閉]。

  8. 在 [檔案] 功能表上,按一下 [全部儲存]。

    接著,您要簽入方案以進行版本控制。

簽入方案

在此程序中,您會簽入方案中的所有檔案, 這些檔案包括方案的測試中繼資料檔,其中包含測試分類關聯和測試。 每當您新增、刪除、重新組織或變更測試的內容時,您的測試中繼資料檔都會自動更新,以反映這些變更。

注意事項注意事項

這個程序描述您使用 Team Foundation 版本控制時的步驟。 如果您使用另一個版本控制軟體,您必須遵循該軟體所適用的步驟。

若要簽入方案

  1. 連接到執行 Team Foundation Server 的電腦。

    如需詳細資訊,請參閱使用原始檔控制總管

  2. 如果您的方案尚未在來源控制項中,請將它加入至來源控制項。

    如需詳細資訊,請參閱將檔案加入至版本控制

  3. 按一下 [檢視],再按一下 [暫止簽入]。

  4. 簽入方案的所有檔案。

    如需詳細資訊,請參閱簽入暫止的變更

    注意事項注意事項

    您可能會有一個特定的小組程序,用來控制建立和管理自動化測試的方式。 例如,這個程序可能會要求您先在本機驗證建置後,才能簽入程式碼以及將會在其上執行的測試。

    在 [方案總管] 中,每一個檔案的旁邊都會出現一個掛鎖圖示,以指示該檔案已簽入。 如需詳細資訊,請參閱檢視版本控制檔案和資料夾屬性

    您的測試可用於 Team Foundation Build。 現在您就可以建立包含您要執行之測試的組建定義。

建立組建定義

若要建立組建定義

  1. 在 [Team 總管] 中,按一下 Team 專案、以滑鼠右鍵按一下 [組建] 節點,然後按一下 [新增組建定義]。

    [新增組建定義] 視窗隨即出現。

  2. 在 [組建定義名稱] 中,輸入您想要用於組建定義的名稱。

  3. 按一下巡覽列中的 [組建預設值]。

  4. 在 [將組建輸出複製至下列置放資料夾 (UNC 路徑,例如 \\server\share)] 中,指定要包含組建輸出的資料夾。

    您可以指定本機電腦上的共用資料夾,或是組建處理序將擁有權限的任何網路位置。

  5. 按一下巡覽列中的 [處理序]。

  6. 在 [必要項] 群組的 [要建置的項目] 中,按一下瀏覽 (...) 按鈕。

  7. 在 [建置專案清單編輯器] 對話方塊中,按一下 [ 加入]。

  8. 指定您先前在此逐步解說中加入至版本控制的方案檔 (.sln),然後按一下 [確定]。

    此方案就會出現在 [要建置的專案或方案檔] 清單中。

  9. 按一下 [確定]。

  10. 在 [基本] 群組的 [自動化測試] 中,指定您想要執行的測試。 根據預設,系統會執行方案中名為 *test*.dll 之檔案內包含的測試。

  11. 在 [檔案] 功能表上,按一下 [儲存 ProjectName]。

    您便已建立組建定義。 接著您會修改測試專案。

執行新組建定義

若要執行新的組建類型

  1. 在 Team 總管中,依序展開 Team 專案節點和 [組建] 節點,以滑鼠右鍵按一下您要執行的組建定義,然後按一下 [佇列新組建]。

    [佇列組建 {TeamProjectName}] 對話方塊便會顯示所有現有組建類型的清單。

  2. 必要時,請按一下 [組建定義] 中的新組建定義。

  3. 確認 [組建定義]、[組建代理程式] 和 [此組建的置放資料夾] 欄位中的值都適當,然後按一下 [佇列]。

    [Build 總管] 的 [已佇列] 索引標籤隨即出現。 如需詳細資訊,請參閱管理和檢視已完成的組建

請參閱

工作

建立基本組建定義

將組建排入佇列

監視執行中組建的進度