在建置流程中執行測試
您可以使用 Team Foundation Build 執行自動化測試並分析程式碼變更對測試的影響,做為建置流程的一部分。 例如,您可以定義一個建置流程做為小組定期排程的組建驗證測試 (BVT) 回合。 您也可以執行自動化測試並從自訂建置流程執行測試相關的工作。
注意事項 |
---|
在建置流程期間,如果您要部署應用程式,則必須使用「建置-部署-測試」工作流程和實驗室環境。之後您可以執行自動化測試做為工作流程的一部分,或是在工作流程完成之後,另外執行測試。如需詳細資訊,請參閱自動化建置-部署-測試工作流程。 |
Team Foundation Build 的功能
準備在建置流程中執行測試
執行自動化測試
為 Visual Studio 測試執行器所執行的測試指定準則
暫時停用測試
啟用測試影響分析
定義多個測試回合
設定協力廠商單元測試架構
在自訂建置流程中處理測試
取得詳細資訊
準備在建置流程中執行測試
在建置流程中執行測試之前,您可能需要先準備好測試和建置系統。
準備測試:確認您的方案和測試檔案已簽入版本控制。 請參閱 使用版本控制。
為測試分類和設定優先權 (選擇性):您可以將分類和優先權指派給測試,然後在組建中執行測試時篩選這些屬性。 例如,您可以建立名為 CI 的測試分類,然後在連續整合組建中指定該分類。 您可以針對組建驗證測試建立另一個名為 bvt 的分類,然後在排程的組建中指定該分類,例如夜間組建。 如需詳細資訊,請參閱定義測試分類以分組測試、TestCategoryAttribute和PriorityAttribute。
準備組建伺服器:某些類型的測試只能由組建代理程式在經過特別設定的組建伺服器上執行。 例如,如果您正在執行自動程式碼 UI 測試,您必須設定組建代理程式以互動的方式執行。 在您嘗試使用建置流程執行測試之前,確認這些測試可以在您打算使用的組建伺服器上執行。 如需詳細資訊,請參閱Use Your Build Agent to Run Tests。
在下列案例中,組建伺服器上需要安裝 Microsoft Visual Studio:
若要建立任何 CPP 測試專案,您必須安裝 Visual Studio Professional (含) 以後版本。
若要執行單元測試或自動程式碼 UI 測試,您必須安裝 Visual Studio Professional (含) 以後版本。
若要使用資料和診斷資料配接器:
程式碼涵蓋範圍:Visual Studio Premium (含) 以後版本。
測試影響:Visual Studio Ultimate。
IntelliTrace:Visual Studio Ultimate。
若要在組建電腦上建置現代樣式應用程式:Visual Studio Ultimate 或 Visual Studio Express for Windows 8 (組建伺服器的作業系統必須是 Windows 8)。
若要以假組件來編譯及執行專案測試:Visual Studio Ultimate。
執行自動化測試
您可以在以預設範本為基礎的組建中執行一個或多個測試回合。 對於每個回合,您可以指定下列設定:
執行的測試
用來執行測試的設定
測試失敗時組建是否應該失敗
在 [Team Explorer] 中,選擇 [首頁],接著選擇 [組建] (鍵盤:Ctrl + 0、B)。
在 [組建] 頁面中,選擇 [新增組建定義],或開啟您所選擇組建或組建定義的內容功能表,然後選擇 [編輯組建定義]。
[組建定義] 視窗隨即出現。
在組建定義的 [流程] 索引標籤上,選取 [自動化測試] 方塊,然後選擇省略符號按鈕 (...)。
[自動化測試] 對話方塊隨即出現。
請執行下列其中一個步驟:
若要加入一組測試,請選擇 [加入]。
若要修改一組測試,請選擇它,然後選擇 [編輯]。
[加入/編輯測試] 對話方塊隨即出現。
(選擇性) 指定測試回合的 [名稱]。 此名稱會顯示在建置結果視窗中。 如果沒有指定名稱,系統會自動產生。
如果您要在此回合中任何測試失敗時使組建失敗,請選擇 [在測試失敗時使組建失敗]。 如果您將此核取方塊保留清除狀態,而且任何測試失敗,則完成的組建會被分類為 [已部分成功]。
測試組件檔案規格
指定包含您要執行之測試的二進位檔案。 如果您想要讓組建代理程式在組建代理程式工作目錄的 binaries 子目錄中,以遞迴方式搜尋任何符合 *test*.dll 的 .dll 檔案,請保留預設值 (**\*test*.dll)。 或者,您也可以修改檔案規格以符合您的需求。
若您要測試回合收集並發行程式碼涵蓋範圍資料,請將 [選項] 設定為 [啟用程式碼涵蓋範圍]。
或者,也可以使用 [自訂] 選項來指定 .runsettings 檔案。 如需詳細資訊,請參閱自訂程式碼涵蓋範圍分析。
從 [選取測試執行的目標平台] 功能表中,選擇 [x86] 來測試 32 位元二進位檔案,或 [x64] 來測試 64 位元二進位檔案。
您可以指定執行測試的準則。
為 Visual Studio 測試執行器所執行的測試指定準則
您可以指定名稱/值組來篩選執行的測試。 如果您使用測試分類和優先權屬性來組織和設定測試的優先權,則可以使用 TestCategory 和 Priority 名稱來篩選所執行的測試。
您可以用下列其中一種格式指定測試分類:
**指定要包括的單一名稱/值組。**例如,您可能有一個稱為 bvt 的測試分類。 您必須將 [測試案例篩選] 設為 TestCategory=bvt,以便僅執行此分類中的測試。
**使用 || ("or" 運算子) 指定多個測試分類。**例如,您可以指定 TestCategory=quick||TestCategory=gui 來執行 quick 分類中的測試以及 gui 分類中的測試。
暫時停用測試
如果您必須暫時停用測試,但不刪除包含它們的測試集合,請展開 [進階] 節點,並將 [停用測試] 設定為 [True]。 當您想要重新啟用測試時,請將此值設定回 [False]。
啟用測試影響分析
您的測試人員和開發人員可能需要知道完成組建中所包含的程式碼變更對測試有何影響。 當您在組建中啟用測試影響分析時,系統就會進行分析,然後在完成組建的組建報告中回報程式碼變更對測試有何影響。
若要在以預設範本為基礎的建置流程中啟用測試影響分析
在測試設定檔案中設定測試影響分析。
如需詳細資訊,請參閱如何:收集資料以檢查程式碼變更後應該要執行的測試。
建立一組設定要使用該測試設定檔的測試。
如需詳細資訊,請參閱本主題前面的執行自動化測試。
展開 [進階] 節點,並確定 [分析測試影響] 設定為 [True] 而且 [停用測試] 設定為 [False]。
定義多個測試回合
您可以視需要定義任意數目的測試回合,以便符合小組建置和測試流程的需求。 例如在下列情節中,您可能需要在單一組建中定義多個測試回合:
您要使用 Visual Studio 測試執行器來測試會產生 32 位元和 64 位元二進位檔的方案。
您有兩組測試:
一組必須成功的最高優先順序核心測試。 您要定義一組測試,其 [最低測試優先順序] 和 [最高測試優先順序] 為 1。 您選取 [在測試失敗時使組建失敗] 核取方塊。
一組較不重要的測試,而這些是您想要執行但不需要成功就能讓組建可供使用的測試。 您要定義一組測試,其 [最低測試優先順序] 為 2,[最高測試優先順序] 為 3。 您將 [在測試失敗時使組建失敗] 核取方塊保留清除狀態。
您想要使用不同的測試設定來執行同一組測試。
您想要讓所建置的主要組件組受制於程式碼涵蓋範圍。 不過,您有另一組來自外部來源且不需要程式碼涵蓋範圍的組件。 若要啟用這種流程,您可以使用兩組測試,並將其設定為使用兩個測試設定檔群組。
啟用協力廠商單元架構
您的建置流程可以執行以協力廠商單元測試架構為基礎的單元測試,但您必須先提供協力廠商架構組件的存取權限給您的組建控制器。
取得協力廠商單元測試外掛程式:
配接器
語言
C++
JavaScript
C++
C#
MSpec
C#
Python
Silverlight
TypeScript
Node.js
C#
C++
將外掛程式 .vsix 檔案重新命名為 .zip 檔案。 例如,使用像這樣的命令提示字元:
C:\Downloads>ren NUnitTestAdapter.vsix NUnitTestAdapter.zip
將 .zip 檔的內容解壓縮至您在步驟 2 中對應的本機工作區資料夾。
簽入檔案。
提示
如需在版本控制中使用協力廠商二進位檔的策略,請參閱利用您的程式碼無法建置的協力廠商二進位檔。
[Visual Studio 2012.3] 包含增強功能,可讓協力廠商單元測試架構自動包含在 Team 組建定義中。
警告
您可能需要安裝最新版的協力廠商單元測試架構 NuGet 封裝,才能確保該架構包含組建定義增強功能。
啟用組建控制器上的協力廠商單元測試架構 - [Visual Studio 2012.1]
在 [方案總管] 中,開啟測試專案的內容功能表,然後選擇 [管理 NuGet 封裝]。
在 [管理 NuGet 封裝] 對話方塊的左側資料行中,選擇 [線上]。
為協力廠商單元測試架構選取 NuGet 封裝,然後選擇 [安裝]。
在 NuGet 封裝完成安裝後,選擇 [關閉]。
在 [方案總管] 中,開啟方案的內容功能表,然後選擇 [將方案加入至原始檔控制]。
您現在可以佇列組建,而使用協力廠商單元測試架構的測試則會自動執行。
在自訂建置流程中處理測試
如果小組需要有更多深入自訂功能的建置流程,您可以從自訂建置流程內執行測試和執行其他測試相關工作。 如需詳細資訊,請參閱:
接下來嘗試這個
更深入發掘
將預設範本用於您的建置流程會提供有關如何以預設範本為基礎來建立組建定義的詳細資訊。 本主題包含編譯程式碼時可以使用的平台位元設定的資訊。