LabDefaultTemplate 工作流程活動
本主題將 LabDefaultTemplate.11.xaml 檔案描述 Windows 工作流程活動。 LabDefaultTemplate 定義在實驗室環境,可讓您建立、部署和測試應用程式的 Lab Management 工作流程。 若要進一步了解 Windows 工作流程,請參閱 MSDN Windows Workflow Foundation (WF) 開發人員的介紹 .NET 4 網站上的這個頁面。
需求
- Visual Studio Ultimate, Visual Studio Premium, Visual Studio Test Professional
初始化工作流程
LabDefaultTemplate 的根是 TfsBuild.Process 活動。 這 ActivityBuilder 初始化工作流程的組建定義的全域引數從 [實驗室工作流程參數] 精靈提供的在 [組建定義] 視窗的和項目。
引數
LabWorkflowParameters 引數包含在實驗室工作流程參數] 精靈所提供的資料。 這個引數為包含下列物件的 LabWorkflowDetails 物件:
BuildDetails |
儲存組建的 BuildDetails 物件為組建詳細資料,,部署和測試工作流程。 |
DeploymentDetails |
儲存針對一個組建部署在工作流程所需的 LabEnvironmentDetails 物件。 |
EnvironmentDetails |
儲存識別環境,用於組建、部署和測試情節中的 LabEnvironmentDetails 物件。 |
TestParameters |
一個RunTestDetails 物件儲存建立自動化的測試回合所需的測試參數詳細資料。 |
下列引數也宣告在全域範圍:
引數 |
型別 |
---|---|
Metadata |
ProcessParameterMetaDataCollection |
Verbosity |
指定數量的資訊寫入記錄檔的 Verbosity 的列舉值。 |
BuildNumberFormat |
指定組建編號格式的 String 。 |
SupportedReasons |
指定組建原因的 BuildReason的列舉值。 |
應用程式部署工作流程序列
![]() |
應用程式部署工作流程 順序控制整個組建,部署,以及測試案例。 應用程式部署工作流程 宣告下列變數:
|
執行組建
更新組建編號 |
更新組建編號 展開並傳回在 BuildNumberFormat 引數的組建編號。 更新組建編號 是 寫入組建編號 (UpdateBuildNumber 活動) 活動。 |
取得組建詳細資料。 |
取得組建詳細資料。 傳回要求執行或存取在組建工作流程精靈所指定資料的。 在 BuildDetail IBuildDetail 物件變數中。 取得組建詳細資料。 是 取得 IBuildDetail 物件的參考 (GetBuildDetail 活動) 活動。 樣板集下列屬性:
|
![]() |
如果建置需要這項資訊。 判斷新組建是否為 Team System 建置流程所需的項目。 如果符合條件,工作流程執行 進行建置 序列。 |
![]() |
進行建置 序列啟始建置,等待建置完成,然後設定組建位置。 |
啟動組建工作流程 |
啟動組建工作流程 佇列在指定的組建控制器的新組建並傳回已佇列組建的 ID 將會在 QueueBuildId 變數。 啟動組建工作流程 是 RunWorkflow 活動。 樣板集下列屬性:
|
等候組建完成 |
等候組建完成 暫止執行,直到建置完成或逾時間隔。 如果逾時為止,此活動會擲回例外狀況。 活動會傳回BuildStatus變數裡的組建狀態,和關於ChildBuildDetail 變數裡的組建的資料。 等候組建完成 是 WaitForWorkflow 活動。 樣板集下列屬性值:
|
設定組建位置 |
設定組建位置 指派組建的位置。 ChildBuildDetail 變數加入至 LabWorkflowParameters 引數的 BuildDetails.BuildUri 屬性。 |
部署應用程式
更新部署摘要 |
更新部署摘要 提供組建頁面寫入目標部署環境的名稱。 更新部署摘要 是 WriteDeploymentInformation 活動。 |
GetBuildLocationAndBuildNumber |
GetBuildLocationAndBuildNumber 傳回組建置放位置設定為 BuildLocation 變數。 GetBuildLocationAndBuildNumber 是 GetBuildLocationAndBuildNumber 活動。 樣板集下列屬性:
|
![]() |
如果 計算需要的組建位置 條件, 計算組建路徑 加入平台和組態的子資料夾加入至置放位置。 |
![]() |
如果使用者選擇儲存環境 檢查環境部署和 表示錯誤 擲回例外狀況,如果要將環境儲存在程式庫中。 |
取得實驗室環境 |
取得實驗室環境 傳回環境 URI 的。 LabEnvironmentUri 變數。 取得實驗室環境 是 GetLabEnvironmentUri 活動。 樣板集下列 properities:
|
![]() |
如果還原快照 判斷使用者是否需要將環境還原至乾淨快照。 如果符合條件, 還原快照 序列執行;否則 未指定全新快照 提供組建摘要寫入一個警告訊息。 |
![]() |
在 還原快照 序列, 取得快照詳細資料 計算這個快照的 ID,然後, 將實驗室環境還原至快照 執行復原。 |
取得快照詳細資料 |
取得快照詳細資料 是 GetLabEnvironmentSnapshotId 活動。 樣板集下列屬性:
|
還原實驗室環境快照。 |
將實驗室環境還原至快照 是 RestoreLabEnvironment 活動。 樣板集下列屬性:
|
![]() |
如果部署需求 判斷使用者是否需要部署。 |
![]() |
如果符合條件, 進行部署 序列執行。 |
等待工作流程功能就緒 |
等待工作流程功能就緒 暫止執行,直到環境的工作流程功能準備就緒或逾時間隔為止。 如果逾時間隔已超過例外狀況 (Exception)。 等待工作流程功能就緒 是 WaitForWorkflowCapabilityServices 活動。 樣板集下列屬性:
|
![]() |
執行部署指令碼 會在 LabWorkflowParameters 引數 DeploymentDetails.Scripts 屬性清單中的每個部署指令碼的 在實驗室系統的指令碼 序列。 |
![]() |
在實驗室系統的指令碼 序列執行在虛擬機器上指定的指令碼會在環境。 在實驗室系統的指令碼 宣告下列變數:
|
初始化代理程式標記和部署指令碼 |
初始化代理程式標記和部署指令碼 展開指令碼的巨集和標記並傳回在 ScriptDetails 物件的結果。 初始化代理程式標記和部署指令碼 是 InitializeAgentSpecAndEnvironmentVariables 活動。 樣板集下列值:
|
實驗室代理程式範圍 |
實驗室代理程式範圍 判斷實驗室代理程式是否已安裝和執行目標虛擬機器會呼叫 執行部署指令碼 執行指令碼。 如果有任何指令碼在電腦,無法擲回例外狀況。 實驗室代理程式範圍 是在組建代理程式上執行活動 (AgentScope 活動)活動。 樣板集下列屬性:
|
執行部署指令碼 |
執行部署指令碼 執行目標虛擬機器的部署指令碼。 執行部署指令碼 是 RunDeploymentScript 活動。 樣板集下列值:
|
成功的應用程式部署 |
成功的應用程式部署 對組建摘要的寫入資訊。 成功的應用程式部署 是 WriteDeploymentInformation 活動。 |
![]() |
部署後快照 判斷使用者是否需要環境快照要在部署之後儲存。 如果符合條件, 擷取部署後快照 序列執行。 否則, 未指定部署後快照 寫入記錄檔就會出現警告訊息。 |
![]() |
擷取部署後快照 序列 擷取部署後快照 宣告下列變數: |
![]() |
檢查快照名稱 判斷快照名稱是否已經指定。 如果符合條件,使用指定的名稱,否則會使用預設值。 |
取得部署後快照 |
取得部署後快照 是建立快照的 SnapshotLabEnvironment 活動。 樣板集下列屬性:
|
採用成功的快照 |
採用成功的快照 提供組建摘要寫入快照名稱。 採用成功的快照 是 WriteDeploymentInformation 活動。 |
快照的連結 |
快照的連結 提供組建摘要寫入快照的 URL。 快照的連結 是 WriteDeploymentInformation 活動。 |
執行測試
![]() |
在環境上執行測試 判斷自動化測試是否要求。 如果符合條件, 執行測試 序列執行。 |
![]() |
執行測試 執行測試 宣告下列變數:
|
等待測試功能就緒 |
等待測試功能就緒 暫止執行,直到環境中的測試功能準備就緒或逾時間隔為止。 如果逾時間隔已超過例外狀況 (Exception)。 等待測試功能就緒 是 WaitForTestCapabilityServices 活動。 樣板集下列屬性:
|
執行測試 |
正在執行測試 執行測試並將測試結果。 正在執行測試 是 ExecuteRemoteTestRun 活動。 樣板集下列值:
|
![]() |
如果所有測試未傳遞 判斷測試是否失敗並執行 設定組建狀態 ,如果符合條件。 |
設定組建狀態 |
設定組建狀態 判斷工作流程是否包含應用程式的建置或部署。 如果符合條件, 部分 succeded 設定工作流程狀態。 BuildStatus.PartiallySucceeded 值。 否則, 失敗 設定 BuildStatus 變數給 Failed。 |