在建置流程中執行測試

您可以使用 Team Foundation Build 執行自動化測試作為組件處理序的一部分,並且分析程式碼的變更測試影響。 例如,您可以定義一個建置流程做為小組定期排程的組建驗證測試 (BVT) 回合。 您也可以執行自動化測試並從自訂建置流程執行測試相關的工作。

注意事項注意事項

在組建處理序期間,如果您要部署應用程式,您必須使用建置-部署-測試工作流程和實驗室環境。您可以執行自動化測試做為工作流程的一部分,或是在工作流程完成之後,分別執行測試。如需詳細資訊,請參閱設定自動建置-部署-測試工作流程

本主題內容

  • 準備在建置流程中執行測試

  • 必要的使用權限

  • 使用測試回合來執行自動化測試

  • 選取和設定測試執行器

    • 使用 Visual Studio 執行測試執行器測試

    • 使用 MSTest 執行測試

  • 暫時停用測試

  • 啟用測試影響分析

  • 安裝協力廠商 裝置單元測試架構

  • 從自訂建置流程執行測試

  • 如需詳細資訊

準備在建置流程中執行測試

在建置處理序執行測試之前,您可能需要先準備好測試和組建系統。

準備測試:確認方案和測試檔案已簽入版本控制。 請參閱 使用版本控制

分類並讓測試優先 (選擇項):,當您在建置期間執行單元測試,您可以在指派分類和優先順序給測試,然後根據屬性進行篩選。 例如,您可以建立名為 CI 的測試分類,然後在連續整合組建中指定該分類。 您可以針對組建驗證測試建立另一個名為 bvt 的分類,然後在排程的組建中指定該分類,例如夜間組建。 如需詳細資訊,請參閱 定義測試分類以分組測試TestCategoryAttributePriorityAttribute

準備您的組建伺服器。:測試只能由特別設定的組建伺服器的組建代理程式來執行。 例如,在中,如果您執行自動程式碼 UI 測試,您必須設定組建代理程式以互動方式執行。 在您嘗試使用建置流程執行測試之前,請判斷它們在您計劃的組建伺服器上執行。 如需詳細資訊,請參閱讓您的組建代理程式執行測試

在下列案例中的組建伺服器需要Microsoft Visual Studio 安裝:

  • 若要建立所有 CPP 測試專案,您必須安裝 Visual Studio Professional (含) 以後版本。

  • 若要執行單元測試或自動程式碼 UI 測試,您必須安裝 Visual Studio Professional (含) 以後版本。

  • 使用資料和診斷資料配接器:

    1. 程式碼涵蓋範圍: Visual Studio Premium 或更新版本。

    2. 測試影響: Visual Studio Ultimate。

    3. IntelliTrace: Visual Studio Ultimate。

  • 建置在組建電腦的現代樣式應用程式: Visual Studio Ultimate 或 Visual Studio Express for Windows 8 (在組建伺服器的作業系統必須是 Windows 8)。

  • 編譯及專案上執行測試與偽造的組件: Visual Studio Ultimate。

必要的使用權限

若要執行這些程序,必須將 [編輯組建定義] 權限設定為 [允許]。 如需詳細資訊,請參閱Team Foundation Server 使用權限

執行自動化測試

您可以根據 預設範本的建置可執行一或多個測試回合。 針對每一個回合,您可以指定下列設定:

  • 哪個測試將被執行

  • 用來執行測試的設定

  • 測試失敗時組建是否應該失敗

對以預設範本的建置流程的自動化測試。

  1. 在功能表列上,選擇 [ 檢視], 小組總管

  2. 小組總管,選擇首頁圖示 首頁,接著點選組建圖示 組建

  3. 組建 頁上,選擇 [新增組建定義] 或右鍵開啟組建,或您所選擇組建定義,然後選擇 [ 編輯組建定義]。

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

  4. 在組建定義的 [流程] 索引標籤上,展開 [基本] 節點。

  5. 選取 [自動化測試] 核取方塊,然後選擇省略符號按鈕 (...)。

    [自動化測試] 對話方塊隨即出現。

  6. 請執行下列其中一個步驟:

    • 若要新增一組測試,請選擇 [ 新增]。

    • 若要修改一組測試,請選取它,然後選取[編輯]。

    [加入/編輯測試] 對話方塊隨即出現。

  7. (選擇性)指定測試回合的名稱。 此名稱會顯示在建置結果視窗中。 如果沒有指定名稱,系統會自動產生。

  8. 如果您希望當任何測試在此執行失敗,建置作業失敗,請選擇 [ 組建測試失敗。 如果您將此核取方塊保留清除狀態,而且任何測試失敗,則完成的組建會被分類為 [已部分成功]。

  9. 選取測試執行器。 使用顯示選項指定測試執行器的操作。 如需更多詳細資訊,請參閱 選取並設定測試執行器。。

選取和設定測試執行器

當您定義建置 (Build) 程序時,請選擇提供您需要的測試執行器。

功能

Visual Studio 測試執行器

MSTest

在 Microsoft.VisualStudio.TestTools.UnitTesting 架構下執行單元測試。

執行自動程式碼 UI,一般和已排序的測試

收集程式碼涵蓋範圍資料

執行在多個架構撰寫的單元測試,例如 NUnit xUnit 等。

執行在原生 (例如, C++) 二進位的單元測試。

執行為 Windows 市集 應用程式的單元測試。

執行 64 位元測試

注意事項注意事項
MSTest 可以執行 64 位元的測試,以任何 CPU 編譯的二進位碼檔案中指定成平台

執行取決於偽造範例架構物件的測試。

如需更多使用測試偽造範例架構建立委派架構測試 Stub Shim 和 .NET Framework 應用程式的詳細資訊,請參閱 使用 Microsoft Fakes 在測試期間隔離程式碼

產生資料庫測試資料並執行資料庫單元測試

收集測試影響分析資料

執行負載和 Web 測試

注意事項注意事項

這些功能在特別設定的組建伺服器的組建代理程式只能運作。如需詳細資訊,請參閱讓您的組建代理程式執行測試

在您了解測試回合所需的功能之後,請選取測試執行器:

  • Visual Studio 測試執行器

  • 使用測試設定檔的 MSTest

  • 使用中繼資料檔案的 MSTest

ms253138.collapse_all(zh-tw,VS.110).gif使用 Visual Studio 執行測試執行器測試

使用 Visual Studio 測試執行器根據預設範本的建置流程執行測試

  1. 在團隊總管中,開啟組建,並且增加或編輯組建定義

    流程頁面中,展開基本,並選擇 自動測試 選擇省略按鈕 (...) 在行尾然後選擇 [加入] 或 [編輯] 測試來源。

  2. 新增/編輯測試回合 的對話框,測試執行器 之下選擇Visual Studio 測試執行器

  3. 測試組件檔案規格

    指定包含您想執行之測試的二進位檔案 (Binary File)。 如果您想要讓組建代理程式在組建代理程式工作目錄的 binaries 子目錄中,以遞迴方式搜尋任何符合 *test*.dll 的 .dll 檔案,請保留預設值 (**\*test*.dll)。 或者,您也可以修改檔案規格以符合您的需求。

  4. 若你想執行測試來收集並發行程式碼涵蓋範圍的資料,設定選項啟用程式碼涵蓋範圍.

    另外,可使用自訂 選項來指定執行設定的檔案 如需詳細資訊,請參閱自訂程式碼涵蓋範圍分析

  5. 從[選取執行測試的目標平台 ] 功能表中,選擇 x86 來測試您的 32 位元二進位檔案,或 x64 來測試您的 64 位元二進位檔案。

  6. 您可以 來指定執行測試的準則。

ms253138.collapse_all(zh-tw,VS.110).gif指定由 Visual Studio 執行測試的準則。

您可以指定名稱/值來篩選執行的測試。 如果您使用測試分類和優先權屬性來組織和排定測試的優先順序,您可以使用 TestCategory 和優先權名稱來篩選所執行的測試。

您可以用下列其中一種格式指定測試分類:

  • 指定一個名稱/值來包含。例如,您可能有一個稱為 bvt 的測試分類。 您將要設定測試案例的篩選器到 TestCategory = bvt 命令僅執行此類別的測試。

  • 使用 | ("or" 運算子) 來指定多個測試分類例如,您可指定 TestCategory=quick|| TestCategory=gui來執行quick 分類的測試以及 gui 分類中的測試 。

ms253138.collapse_all(zh-tw,VS.110).gif使用 MSTest 執行測試

執行測試時使用在以預設範本的建置流程的 MSTest

  1. 使用測試執行的自動化測試,並執行其他測試工作,然後在 新增/編輯測試回合 對話方塊,在 測試執行器下,選擇:

    • MSTest.exe 執行器

      指定包含您想執行之測試的二進位檔案 (Binary File)。 如果您想要讓組建代理程式在組建代理程式工作目錄的 binaries 子目錄中,以遞迴方式搜尋任何符合 *test*.dll 的 .dll 檔案,請保留預設值 (**\*test*.dll)。 或者,您也可以修改檔案規格以符合您的需求。

      (選擇性) 指定 [測試設定檔案] 設定測試的執行方式。 如需詳細資訊,請參閱指定 Visual Studio 測試的測試設定

    • MsTest 測試中繼資料檔 (已被取代)

      如果選擇此選項,請選擇 [瀏覽] 以尋找並指定要使用的測試中繼資料檔。 然後,您可以將 [執行這個 VSMDI 檔案中的所有測試] 核取方塊保留選取狀態,或清除此核取方塊,然後在 [要執行的測試清單] 清單中選取一個或多個測試。

      注意事項注意事項

      測試清單已被取代。如需詳細資訊,請參閱定義測試分類以分組測試

  2. 選擇[ 準則/引數 ] 索引標籤。

  3. 依照分類篩選要執行的測試。

    您可以用下列其中一種格式指定測試分類:

    • **指定要包含或排除的單一測試分類。**例如,您可能有一個稱為 bvt 的測試分類。 您會將這個參數設定為 bvt 表示只執行此分類中的測試,或 !bvt 表示執行所有測試但此分類中的測試除外。

    • **使用 & ("and" 運算子) 和 !來指定多個測試("not" 運算子) 來指定多個測試分類。**例如,您可以指定 quick&&gui&&!deep,以便只執行那些同時在 quick 和 gui 分類但不在 deep 分類中的測試。

    • 使用 | ("or" 運算子) 和 !("not" 運算子)。例如,您可以指定 quick|gui|!deep,以便執行 quick 分類中的測試、gui 分類中的測試,以及任何不在 deep 分類中的測試。

  4. (選擇性) 依照優先順序篩選要執行的測試。

    提示

    如果您指派優先順序給測試,就可以使用這個參數,使全面性測試和快速組建更好地平衡。

    將 [最低測試優先順序] 設定為等於或小於 [最高測試優先順序] 的正整數,或設定為 -1 表示沒有最小值。

    將 [最高測試優先順序] 設定為等於或高於 [最低測試優先順序] 的正整數,或設定為 -1 表示沒有最大值。

  5. 選擇 [確定]。

暫時停用測試

如果您必須停用但不會刪除測試集合,包含他們自己,展開[進階 ]的節點,並設定[ 停用測試 ]為 True。 當您想要重新啟用測試時,請將此值設定回 [False]。

啟用測試影響分析

您的測試人員和開發人員可能需要知道完成組建中所包含的程式碼變更對測試有何影響。 當您在組建中啟用測試影響分析時,系統就會進行分析,然後在完成組建的組建報告中回報程式碼變更對測試有何影響。

啟用測試會以預設範本的建置流程的影響分析

  1. 在測試設定檔案中設定測試影響分析。

    如需詳細資訊,請參閱HOW TO:收集資料以檢查程式碼變更後應該要執行的測試

  2. 建立一組測試來設定檔案的測試回合。

    如需詳細資訊,請參閱本主題前面的執行自動化測試。

  3. 展開 [進階] 節點,並確定 [分析測試影響] 設定為 [True] 而且 [停用測試] 設定為 [False]。

定義多個測試回合

您可以視需要設定任意數目的測試回合,以便符合小組建置和測試流程的需求。 例如在下列情節中,您可能需要在單一組建中設定多個測試回合:

  • 您要使用 Visual Studio 測試執行器來測試產生 32 位元和64位元之二進位檔方案。

  • 您會有由 Visual Studio 測試執行器的一些測試和只能由 MSTest執行的其他測試。

  • 您有兩組測試:

    • 一組必須成功的最高優先順序核心測試。 您定義一組測試,包括最小值測試優先順序最高的測試優先權為 1。 您選取 [在測試失敗時使組建失敗] 核取方塊。

    • 一組較不重要的測試,而這些是您想要執行但不需要成功就能讓組建可供使用的測試。 您定義一組測試,包括最小值測試優先順序 為 2 和 最高的測試優先權 為 3。 您將 [在測試失敗時使組建失敗] 核取方塊保留清除狀態。

  • 您想要使用不同的測試設定來執行同一組測試。

  • 您想要讓所建置的主要組件組受制於程式碼涵蓋範圍。 不過,您有另一組來自外部來源且不需要程式碼涵蓋範圍的組件。 若要啟動此種程序,您可以使用兩組測試來使用兩個測試群之設定檔案。

啟用組建控制器的協力廠商單元測試架構

才能提供您自己的組建控制器以對協力廠商架構組件的存取,您的建置流程可能會根據協力廠商單元測試架構的單元測試。

  1. 位於,或者,如果需要,請指定組建控制器的路徑加入至自訂組件

  2. 位於,或者,如果需要,請建立從自訂組件的資料夾對應到伺服器上的本機資料夾中的工作區

  3. 取得協力廠商單元測試外掛程式。 您可以連結到某些如下: 單元測試插入清單.

  4. 將外掛程式 .vsix 檔案重新命名為 .zip 檔。 例如,請使用像這樣的命令提示字元輸入:

    C:\Downloads>ren NUnitTestAdapter.vsix NUnitTestAdapter.zip
    
  5. 解壓縮 .zip 檔的內容載入至您在步驟 2. 步驟對應本機工作區資料夾。

  6. 簽入檔案

    提示

    如需策略與版本控制的協力廠商二進位檔案,請參閱 支援您的程式碼不會建置的協力廠商二進位檔

[Visual Studio 2012.1] 包含協力廠商單元測試架構的加強功能可以自動化其在 Team 組建定義中。

警告

您可能需要安裝 NuGet 封裝的新版本 3 之前的單元測試架構可以確保架構包括組建定義加強功能。

啟用組建控制器的協力廠商單元測試架構 ([Visual Studio 2012.1]

  1. 在方案總管中,在測試專案的捷徑功能表並選擇 [處理 NuGet 套件]。

  2. 在處理 NuGet 封裝對話方塊中,選取左欄中,選取 [連接]。

  3. 為協力廠商單元測試架構選取 NuGet 套件並選取 [安裝]。

  4. 在 NuGet 封裝完成安裝後,請選取 [關閉]。

  5. 在方案總管中,開啟方案中的捷徑功能表並選擇 [將方案加入至原始檔控制]。

  6. 您現在已佇列組建,而且與協力廠商單元測試架構的測試會自動執行。

在自訂建置流程中處理測試

如果小組需要一個建置處理序時有更多較深入的自訂功能,您可以執行測試和從自訂建置流程的內部,執行其他測試相關工作。 如需詳細資訊,請參閱:

如需詳細資訊

根據預設範本定義建置流程 之方式的詳細資訊會依據預設範本組建定義。 本主題包含當您在編譯程式碼時,使用的平台位元設定。

使用建置流程時,建置-部署-測試工作流程的指引 會提供部屬應用程式和在實驗室環境下執行測試的資料。

在 Microsoft Test Manager 中執行測試 提供更多關於執行測試的相關資料。

請參閱

概念

定義您的建置流程

在 Microsoft Test Manager 中建立與管理測試