共用方式為


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 初始化工作流程的組建定義的全域引數從 [實驗室工作流程參數] 精靈提供的在 [組建定義] 視窗的和項目。

Ff652752.collapse_all(zh-tw,VS.110).gif引數

LabWorkflowParameters 引數包含在實驗室工作流程參數] 精靈所提供的資料。 這個引數為包含下列物件的 LabWorkflowDetails 物件:

BuildDetails

儲存組建的 BuildDetails 物件為組建詳細資料,,部署和測試工作流程。

DeploymentDetails

儲存針對一個組建部署在工作流程所需的 LabEnvironmentDetails 物件。

EnvironmentDetails

儲存識別環境,用於組建、部署和測試情節中的 LabEnvironmentDetails 物件。

TestParameters

一個RunTestDetails 物件儲存建立自動化的測試回合所需的測試參數詳細資料。

下列引數也宣告在全域範圍:

引數

型別

Metadata

ProcessParameterMetaDataCollection

Verbosity

指定數量的資訊寫入記錄檔的 Verbosity 的列舉值。

BuildNumberFormat

指定組建編號格式的 String

SupportedReasons

指定組建原因的 BuildReason的列舉值。

應用程式部署工作流程序列

應用程式部署工作流程

應用程式部署工作流程 順序控制整個組建,部署,以及測試案例。

應用程式部署工作流程 宣告下列變數:

  • BuildDetail: 一個 IBuildDetail 物件。

  • LabEnvironmnetUri:指定環境 URI 組建部署的 String

  • BuildLocation:指定組建位置的 String

  • SnapshotId:指定虛擬機器快照之識別項的 String

  • QueueBuildId:在佇列中指定組建識別項的 Int32

執行組建

更新組建編號

更新組建編號 展開並傳回在 BuildNumberFormat 引數的組建編號。 更新組建編號寫入組建編號 (UpdateBuildNumber 活動) 活動。

取得組建詳細資料。

取得組建詳細資料。 傳回要求執行或存取在組建工作流程精靈所指定資料的。 在 BuildDetail IBuildDetail 物件變數中。

取得組建詳細資料。取得 IBuildDetail 物件的參考 (GetBuildDetail 活動) 活動。 樣板集下列屬性:

  • 結果 傳回 BuildDetail 變數 IBuildDetail 物件。

如果需要組建活動

如果建置需要這項資訊。 判斷新組建是否為 Team System 建置流程所需的項目。 如果符合條件,工作流程執行 進行建置 序列。

進行建置活動

進行建置 序列啟始建置,等待建置完成,然後設定組建位置。

啟動組建工作流程

啟動組建工作流程 佇列在指定的組建控制器的新組建並傳回已佇列組建的 ID 將會在 QueueBuildId 變數。 啟動組建工作流程RunWorkflow 活動。 樣板集下列屬性:

  • BuildDefinition被設為LabWorkflowParameters 引數的 BuildDetails.BuildDefinitionName屬性。

  • ProjectName 引數設定為 BuildDetail變數的 TeamProject 屬性。

等候組建完成

等候組建完成 暫止執行,直到建置完成或逾時間隔。 如果逾時為止,此活動會擲回例外狀況。 活動會傳回BuildStatus變數裡的組建狀態,和關於ChildBuildDetail 變數裡的組建的資料。 等候組建完成WaitForWorkflow 活動。 樣板集下列屬性值:

  • AllowPartiallySucceededBuild 設為 true。

  • BuildDetails 傳回新的組建資料至 ChildBuildDetail 變數。

  • MaxWaitTime 設定為無限。

  • QueueBuildId 傳回組建 QueueBuildId 變數的佇列 ID。

設定組建位置

設定組建位置 指派組建的位置。 ChildBuildDetail 變數加入至 LabWorkflowParameters 引數的 BuildDetails.BuildUri 屬性。

部署應用程式

更新部署摘要

更新部署摘要 提供組建頁面寫入目標部署環境的名稱。 更新部署摘要WriteDeploymentInformation 活動。

GetBuildLocationAndBuildNumber

GetBuildLocationAndBuildNumber 傳回組建置放位置設定為 BuildLocation 變數。 GetBuildLocationAndBuildNumberGetBuildLocationAndBuildNumber 活動。 樣板集下列屬性:

  • BuildDetails 設為 LabWorkflowParameters 引數中。 BuildDetails 物件

  • BuildNumber 傳回組建編號會 BuildNumber 變數。

  • 結果 傳回組建的位置設定為 BuildLocation 變數

  • SelectedBuild 傳回包含有關組建伺服器的組建資料的 SelectedBuildDetail 變數的 IBuildDetail 物件。

計算需要的組建位置活動

如果 計算需要的組建位置 條件, 計算組建路徑 加入平台和組態的子資料夾加入至置放位置。

如果使用者選取預存環境活動

如果使用者選擇儲存環境 檢查環境部署和 表示錯誤 擲回例外狀況,如果要將環境儲存在程式庫中。

取得實驗室環境

取得實驗室環境 傳回環境 URI 的。 LabEnvironmentUri 變數。 取得實驗室環境GetLabEnvironmentUri 活動。 樣板集下列 properities:

  • LabEnvironmentName 設為 LabWorkflowParameters 引數的 EnvironmentDetails.LabEnvironmentName 屬性的值。

  • ProjectName 設為 BuildDetail 變數的 TeamProject 屬性的值。

  • 傳回結果 實驗室環境 URI 的。 LabEnvironmentUri 變數。

  • TeamProjectLabLocationName 設為 LabWorkflowParameters 引數的 EnvironmentDetails.HostGroupName 屬性的值。

  • TfsServerUrl 設為 null。

如果要進行還原快照活動

如果還原快照 判斷使用者是否需要將環境還原至乾淨快照。 如果符合條件, 還原快照 序列執行;否則 未指定全新快照 提供組建摘要寫入一個警告訊息。

還原快照活動

還原快照 序列, 取得快照詳細資料 計算這個快照的 ID,然後, 將實驗室環境還原至快照 執行復原。

取得快照詳細資料

取得快照詳細資料GetLabEnvironmentSnapshotId 活動。 樣板集下列屬性:

  • LabEnvironmentUri 設為 LabEnvironmentUri 變數的值。

  • 結果 傳回快照的 ID。 SnapshotId 變數。

  • SnapshotName 設為參數的EnvironmentDetails.SnapshotName propertyLabWorkflowParameters 。

還原實驗室環境快照。

將實驗室環境還原至快照RestoreLabEnvironment 活動。 樣板集下列屬性:

  • LabEnvironmentUri 設為 LabEnvironmentUri 變數的值。

  • SnapshotId 設為 SnapshotId變數的值。

如果需要部署活動

如果部署需求 判斷使用者是否需要部署。

進行部署活動

如果符合條件, 進行部署 序列執行。

等待工作流程功能就緒

等待工作流程功能就緒 暫止執行,直到環境的工作流程功能準備就緒或逾時間隔為止。 如果逾時間隔已超過例外狀況 (Exception)。 等待工作流程功能就緒WaitForWorkflowCapabilityServices 活動。 樣板集下列屬性:

  • LabEnvironmentUri 設為 LabEnvironmentUri 變數的值。

  • MaxWaitTime 設為 20 分鐘。

  • RepairCapabilityBeforeWaitBegins 設為 false。

執行部署指令碼活動

執行部署指令碼 會在 LabWorkflowParameters 引數 DeploymentDetails.Scripts 屬性清單中的每個部署指令碼的 在實驗室系統的指令碼 序列。

在實驗室系統上執行指令碼活動

在實驗室系統的指令碼 序列執行在虛擬機器上指定的指令碼會在環境。 在實驗室系統的指令碼 宣告下列變數:

初始化代理程式標記和部署指令碼

初始化代理程式標記和部署指令碼 展開指令碼的巨集和標記並傳回在 ScriptDetails 物件的結果。 初始化代理程式標記和部署指令碼InitializeAgentSpecAndEnvironmentVariables 活動。 樣板集下列值:

  • BuildLocation 設為 BuildLocation 變數的值。

  • DeploymentScriptDetails 設定為重複的 DeploymentDetails.Scripts 字串的值。

  • LabEnvironmentUri 設為 LabEnvironmentUri 變數的值。

  • 結果 傳回已展開的指令碼是 scriptDetails 變數。

實驗室代理程式範圍

實驗室代理程式範圍 判斷實驗室代理程式是否已安裝和執行目標虛擬機器會呼叫 執行部署指令碼 執行指令碼。 如果有任何指令碼在電腦,無法擲回例外狀況。 實驗室代理程式範圍在組建代理程式上執行活動 (AgentScope 活動)活動。 樣板集下列屬性:

  • MaxExecutionTime 設定為無限。

  • MaxWaitTime設為 5 分鐘。

  • ReservationSpec 設為 Microsoft.Te: 是 scriptDetails 變數的 AgentSpec 屬性的 amFoundation.Build.Client.BuildAgentSpec 物件。

執行部署指令碼

執行部署指令碼 執行目標虛擬機器的部署指令碼。 執行部署指令碼RunDeploymentScript 活動。 樣板集下列值:

  • ScriptDetails 設為 scriptDetails 變數的值。

  • ThrowOnError 設為 true。

  • SharedLocationForNetUse 設為 BuildLocation 變數的值。

成功的應用程式部署

成功的應用程式部署 對組建摘要的寫入資訊。 成功的應用程式部署WriteDeploymentInformation 活動。

部署後快照

部署後快照 判斷使用者是否需要環境快照要在部署之後儲存。 如果符合條件, 擷取部署後快照 序列執行。 否則, 未指定部署後快照 寫入記錄檔就會出現警告訊息。

擷取部署後快照活動

擷取部署後快照 序列

擷取部署後快照 宣告下列變數:

  • PostDeploymentSnapshotChainId: Int64

  • PostDeploymentSnapshotName: String 樣板集。 BuildDetails 變數的 BuildNumber 屬性值的預設值。

檢查快照名稱活動

檢查快照名稱 判斷快照名稱是否已經指定。 如果符合條件,使用指定的名稱,否則會使用預設值。

取得部署後快照

取得部署後快照 是建立快照的 SnapshotLabEnvironment 活動。 樣板集下列屬性:

  • LabEnvironmentUri 設為 LabEnvironmentUri 變數的值。

  • SnapshotChainId 傳回快照的 ID。 PostDeploymentSnapshotChainId 變數。

  • SnapshotName 設為 PostDeploymentSnapshotName 變數的值。

採用成功的快照

採用成功的快照 提供組建摘要寫入快照名稱。 採用成功的快照WriteDeploymentInformation 活動。

快照的連結

快照的連結 提供組建摘要寫入快照的 URL。 快照的連結WriteDeploymentInformation 活動。

執行測試

在環境中執行測試活動

在環境上執行測試 判斷自動化測試是否要求。 如果符合條件, 執行測試 序列執行。

執行測試活動

執行測試

執行測試 宣告下列變數:

  • TestCapabilityInfo:Microsoft.TeamFoundation.Lab.Client.TestingCapabilityInformation.

  • TestResults:Microsoft.TeamFoundation.Lab.Workflow.Activities.TestRunStatistics. 樣板集至新的 TestRunStatistics 物件的預設值。

等待測試功能就緒

等待測試功能就緒 暫止執行,直到環境中的測試功能準備就緒或逾時間隔為止。 如果逾時間隔已超過例外狀況 (Exception)。

等待測試功能就緒WaitForTestCapabilityServices 活動。 樣板集下列屬性:

  • LabEnvironmentUri 設為 LabEnvironmentUri 變數的值。

  • MaxWaitTime 設為 20 分鐘

  • RepairCapabilityBeforeWaitBegins 設為 false。

執行測試

正在執行測試 執行測試並將測試結果。 正在執行測試ExecuteRemoteTestRun 活動。 樣板集下列值:

  • MaxWaitTime 設定為無限。

  • BuildNumber 設為 BuildNumber 變數的值。

  • TestDirectory 設為 BuildLocation 變數的值。

  • LabEnvironmentUri 設為 LabEnvironmentUri 變數的值。

  • TestParameters 設為 LabWorkflowParameters 物件中所包含的 TestParameters 物件。

  • 結果 包含測試結果儲存至 TestResults 變數的傳回 Microsoft.TeamFoundation.Lab.Workflow.Activities.RunTestDetails 物件。

  • 標題 設定測試回合的名稱。 BuildDetail 變數的 BuildNumber 屬性的值。

如果所有測試皆未通過活動

如果所有測試未傳遞 判斷測試是否失敗並執行 設定組建狀態 ,如果符合條件。

設定組建狀態

設定組建狀態 判斷工作流程是否包含應用程式的建置或部署。 如果符合條件, 部分 succeded 設定工作流程狀態。 BuildStatus.PartiallySucceeded 值。 否則, 失敗 設定 BuildStatus 變數給 Failed。

請參閱

概念

Lab Management 工作流程活動