自訂 Lab Management 工作流程
更新:2010 年 10 月
Visual Studio Lab Management 端對端工作流程協助您將建置應用程式、新組建部署至虛擬環境,以及在新組建上執行測試等作業自動化。 LabDefaultTemplate 是可立即使用的預設工作流程範本。 如需如何使用 LabDefaultTemplate 的詳細資訊,請參閱 HOW TO:將應用程式部署至虛擬環境。 但每個建置-部署-測試 (BDT) 流程可能因為不同需求而稍微不同。 例如,某個工作流程可能需要從一般組建位置複製測試二進位檔,而另一個工作流程則需要從暫存位置複製測試二進位檔。 或者,某個工作流程可能要求環境應儲存在程式庫中供每個測試人員部署,而另一個工作流程則完全不儲存環境。 因為預設工作流程範本是以 Windows Workflow 4.0 為基礎,所以它是可完全延伸和自訂的,您可以自訂 LabDefaultTemplate 以符合特定需求。
本主題說明自訂工作流程範本的一般步驟,然後提供五個非常適合自訂的情節範例:
指定組建位置以外的測試二進位檔位置。
支援需要在安裝後重新啟動的應用程式部署。
讀取原始檔控制檔案。
使用組建代理程式帳戶來存取組建置放位置。
使用實驗室服務帳戶來存取其他位置。
工作流程自訂的基本概念
工作流程自訂涉及三個重要的概念:
範本:範本會定義工作流程中活動或步驟的順序。 範本是以 Windows Workflow Foundation 4.0 為基礎,在原始檔控制中儲存為 .xaml 檔案。 若要將範本載入工作流程編輯器,請按兩下 .xaml 檔案。 在編輯器中,您將能夠看到決定工作流程的各種活動和順序。 然後您可以使用變數搭配不同範圍、條件邏輯、迴圈等撰寫範本,就如同任何其他程式語言一樣。 Windows Workflow Foundation 可讓您視需要自訂實驗室預設範本。
活動:活動是工作流程的建置組塊,實驗室預設範本會使用許多活動。 您可以在 [Team Foundation Lab Management 活動] 標題下的 [工具箱] 中找到其他活動。 若要使用工作流程中的活動,請從工具箱拖曳活動到 Visual Studio 工作流程編輯器中範本的適當位置。 您可以查看活動的屬性來判斷輸入和輸出參數。 如需 Lab Management 活動的詳細資訊,請參閱 Team Foundation LabManagement 活動。 如果產品隨附的活動無法充分滿足您的需求,您可以加入新活動。
引數:您可以為所需的使用者輸入建立新的輸入引數,並將這些值傳遞至活動。 請按一下工作流程編輯器視窗底端的 [引數] 索引標籤,查看現有的引數。 如果您建立新的引數,它們會出現在組建定義中 [流程] 索引標籤的 [建置流程參數] 區段中。
當您檢閱下列兩個需要自訂的範例時,請思考這些概念。 第一個範例示範如何變更範本中現有活動的 In 引數,第二個範例示範如何從工具箱加入新活動。 這些範例應該會提供足夠的背景可自訂 LabDefaultTemplate 以符合您的需求。
開始自訂之前
您必須先完成一些一般步驟,然後才能開始自訂 LabDefaultTemplate 工作流程範本。 下圖說明這些步驟。
若要準備自訂
在 [Team 總管] 中,按兩下 Team 專案的 [原始檔控制] 節點。
在 [原始檔控制總管] 中,展開原始檔控制樹狀結構,然後尋找 $/<Project_Name>/BuildProcessTemplates 資料夾。
將這個資料夾對應至本機資料夾,例如 C:\Sources。
以滑鼠右鍵按一下 LabDefaultTemplate.xaml 檔案,然後按一下 [取得最新的版本]。
建立 LabDefaultTemplate.xaml 檔案的複本,並指定新名稱,例如 LabDefaultTemplate_customize.xaml
將這個新檔案加入至原始檔控制。
按兩下這個新檔案。 檔案就會在 [Visual Studio 工作流程編輯器] 中開啟。
接下來,將自訂新建立的預設工作流程範本的複本。
指定組建置放位置以外的測試二進位檔位置的自訂
預設工作流程範本 LabDefaultTemplate 假設測試二進位碼檔的位置與組建置放位置相同。 不過,在您的情況下,測試程式碼可能不會與產品程式碼一起建置。 如果發生這種情況,您可能想要自訂範本,以便從不同位置挑選測試二進位檔。 此自訂包含三個步驟,如下圖所示。
定義工作流程 In 引數以指定測試二進位檔路徑
若要定義 In 引數
在工作流程編輯器視窗底端,按一下 [引數] 索引標籤。
按一下 [建立引數]。 在文字方塊中,輸入引數的名稱,例如 TestBinariesLocation。 在 [方向] 下拉式清單中,按一下 [In]。 按一下 [引數類型] 下拉式清單中的 [String]。
將引數值傳遞給 ExecuteRemoteTestRun 活動
這個活動會建立遠端測試回合,等候直到測試回合完成,然後以測試回合統計資料來更新組建資訊。
若要傳遞引數值
在工作流程編輯器中,捲動至 [正在執行測試] 活動。 雖然活動的顯示名稱是「正在執行測試」,活動型別是 ExecuteRemoteTestRun。
以滑鼠右鍵按一下此活動,然後按一下 [屬性]。 [屬性] 視窗隨即在右下角開啟,並顯示這個活動的 In 和 Out 引數。 這個活動的其中一個 In 引數是 TestDirectory,它會設定測試二進位檔位置的路徑。
按一下 [屬性] 視窗中的 [TestDirectory]。 按一下資料列末端的省略符號 (...)。
在 [運算式編輯器] 中,輸入 TestBinariesLocation,然後按一下 [確定]。
按一下 [檔案] 功能表上的 [儲存 LabDefaultTemplate_customize.xaml]。
按一下 [原始檔控制總管] 功能表列上的 [簽入] 圖示。
您現在可以使用自訂的 .xaml 檔案建立新的組建定義。 新的 In 引數 TestBinariesLocation 會出現在組建定義中 [流程] 索引標籤的 [其他] 區段中,您可以在那裡指派值。
支援需要在部署後重新啟動機器的應用程式安裝程式的自訂
預設工作流程範本 LabDefaultTemplate 不會在部署應用程式後重新啟動虛擬環境。 您可能想要自訂此範本以支援需要在部署後重新啟動的應用程式。 如果您在虛擬環境中手動部署應用程式,只會重新啟動安裝應用程式的虛擬機器。 Visual Studio Lab Management 不支援在環境中在個別的虛擬機器執行作業。 因此,若要重新啟動一部機器,虛擬環境中的所有機器都需要重新啟動。
警告
請確定部署指令碼絕不重新啟動虛擬機器。 如果發生這種情況,執行部署指令碼的組建代理程式與組建控制器連接會中斷,工作流程可能會停止。
您需要先將三個活動加入至 LabDefaultTemplate,才能在部署新組建後重新啟動虛擬環境:
停止環境
啟動環境
等候虛擬機器啟動,然後繼續工作流程的其餘部分。
停止環境
您可以從 [工具箱] 將 [StopLabEnvironment] 活動拖曳至工作流程範本,並初始化活動變數,藉以將停止環境活動加入至預設工作流程範本。
若要停止環境
在工作流程編輯器中,捲動至顯示名稱為 [應用程式部署成功] 的活動。
在 [檢視] 功能表上,按一下 [工具箱]。 工具箱隨即在左側開啟,並顯示 [Team Foundation Build 活動] 清單。 捲動此活動清單,直到您看到 [Team Foundation Lab Management 活動] 清單。
按一下工具箱中的 [StopLabEnvironment] 活動。 將它拖曳至工作流程編輯器中,放在 [應用程式部署成功] 活動前面。
以滑鼠右鍵按一下此活動,然後按一下 [屬性]。 屬性視窗就會顯示這個活動的 In 和 Out 引數。 請注意工作流程已有稱為 LabEnvironmentUri 的變數,它參考環境 URI。
按一下 [變數] 索引標籤。 變數的清單隨即顯示。
在 LabEnvironmentUri 資料列的 [預設] 資料行中,按兩下 [輸入 VB 運算式]。 在文字方塊中,輸入 LabEnvironmentUri。 編輯器會顯示參數的任何現有用法,您可以從該清單中選取值,不需要輸入。
啟動環境
您可以從 [工具箱] 將 [StartLabEnvironment] 活動拖曳至工作流程範本,並初始化活動變數,藉以將啟動環境活動加入至預設工作流程範本。
若要啟動環境
按一下工具箱中的 [StartLabEnvironment] 活動。 將它拖曳至工作流程編輯器中,放在 [應用程式部署成功] 活動前面,但在 [StopLabEnvironment] 活動後面。
以滑鼠右鍵按一下此活動,然後按一下 [屬性]。 屬性視窗就會顯示這個活動的 In 和 Out 引數。 同樣地,請注意工作流程已有稱為 LabEnvironmentUri 的變數,它參考環境 URI。
按一下 [變數] 索引標籤。 變數的清單隨即顯示。
在 LabEnvironmentUri 資料列的 [預設] 資料行中,按兩下 [輸入 VB 運算式]。 在文字方塊中,輸入 LabEnvironmentUri。 編輯器會顯示參數的任何現有用法,您可以從該清單中選取值,不需要輸入。
等候機器重新啟動,然後繼續工作流程的其餘部分。
您可以從 [工具箱] 將 [Delay] 活動拖曳至工作流程範本,並初始化活動變數,藉以加入等候虛擬機器啟動的時間。 這個活動位於 [工具箱] 的 [基本] 索引標籤上。
若要等候虛擬機器啟動
按一下 [工具箱] 中的 [基本] 索引標籤。
按一下 [Delay] 活動。 將它拖曳至工作流程編輯器中,放在 [應用程式部署成功] 活動前面,但在 [StartLabEnvironment] 活動後面。
以滑鼠右鍵按一下此活動,然後按一下 [屬性]。 屬性視窗就會顯示這個活動的 In 和 Out 引數。 請注意工作流程已有稱為 Duration 的變數,它參考等候時間。
在 [屬性] 視窗中,按一下 [Duration],然後按一下省略符號 (...)。
在 [運算式編輯器] 中,以下列格式輸入等候時間 (例如 10 分鐘):TimeSpan.FromMinutes(10)。
在修改這個範本之後,將它簽入原始檔控制中,然後用它來建立新組建定義,以部署需要在安裝後重新啟動的應用程式。
讀取原始檔控制檔案的自訂
如果您建立自訂活動,然後在工作流程範本中使用它們,請確定透過實驗室服務帳戶通訊的組建代理程式可以存取這些活動。 因為這些活動必須簽入原始檔控制系統中做為自訂組件,所以您必須確定實驗室服務帳戶有簽入自訂組件之路徑的讀取權限。 如需實驗室服務帳戶的詳細資訊,請參閱 HOW TO:設定測試和工作流程整合的服務帳戶。您可以使用 tf permissions 命令,將使用權限授與實驗室服務帳戶。 例如,若要將 $/MyProject/CustomAssemblies 路徑的讀取權限授與實驗室服務帳戶 mydomain\labAccount,執行命令如下:C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE>tf permission /user:mydomain\labAccount /collection:http://aseemb-tfs10:8080/tfs/Collection0 /allow:read $/MyProject/CustomAssemblies
使用組建代理程式帳戶來存取組建置放位置的自訂
執行實驗室工作流程的組建代理程式會使用實驗室服務帳戶來存取組建置放位置。 如果您要組建代理程式改用組建代理程式帳戶,可以自訂工作流程範本。 在範本中,尋找 RunDeploymentScript 活動,它會執行部署指令碼。 這個活動公開 SharedLocationForNetUse 屬性,它定義應該透過實驗室服務帳戶存取的位置。 <mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="[BuildLocation]" /> 若要以組建代理程式帳戶 (而不使用實驗室服務帳戶) 存取組建置放位置,請刪除範本中的此屬性,或將此屬性的值設定為 null ({x:Null}),如下列範例所示:mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="{x:Null}" />
使用實驗室服務帳戶來存取其他位置的自訂
如果在實驗室服務帳戶下執行的組建代理程式需要讀取組建置放位置以外的其他位置,您可以將 SharedLocationForNetUse 屬性的值從預設值 [BuildLocation] 變更為所需位置。 例如,若要在實驗室服務帳戶下執行的組建代理程式存取 \\contoso\scripts 目錄,此屬性應有下列值:<mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="\\contoso\scripts" />
請參閱
工作
參考
.NET 4 中的 Windows Workflow Foundation (WF) 開發人員簡介
概念
其他資源
Team Foundation LabManagement 活動
變更記錄
日期 |
記錄 |
原因 |
---|---|---|
2010 年 10 月 |
加入兩個圖,摘要說明自訂工作流程時的數個步驟。 |
資訊加強。 |