Condividi tramite


Attività del flusso di lavoro LabDefaultTemplate

In questo argomento vengono descritte le attività del flusso di lavoro di Windows nel file di LabDefaultTemplate.11.xaml.LabDefaultTemplate definisce il processo del flusso di lavoro di Lab Management che consente di compilare, distribuire e testare l'applicazione in un ambiente lab.Per ulteriori informazioni sul flusso di lavoro di Windows, vedere questa pagina L'introduzione dello sviluppatore per Windows Workflow Foundation (WF) di .NET 4 nel sito Web MSDN.

Requisiti

  • Visual Studio Ultimate, Visual Studio Premium, Visual Studio Test Professional

Inizializzare il flusso di lavoro.

Attività radice del processo

La radice di LabDefaultTemplate è l'attività TfsBuild.Process.Questo ActivityBuilder inizializza gli argomenti globali per la definizione di compilazione del flusso di lavoro proveniente dall'input specificato nella finestra della definizione di compilazione e nella procedura guidata dei parametri di flusso di lavoro del lab.

Ff652752.collapse_all(it-it,VS.110).gifArgomenti

L'argomento LabWorkflowParameters contiene i dati che vengono forniti nella procedura guidata dei parametri di flusso di lavoro del lab.Questo argomento è un oggetto LabWorkflowDetails che contiene i seguenti oggetti:

BuildDetails

Un oggetto Microsoft.TeamFoundation.Lab.Workflow.Activities.BuildDetails che archivia i dettagli della compilazione per la compilazione, la distribuzione e il flusso di lavoro del test.

DeploymentDetails

Un oggetto Microsoft.TeamFoundation.Lab.Workflow.Activities.DeploymentDetails che archivia le informazioni necessarie per la distribuzione di una compilazione nel flusso di lavoro.

EnvironmentDetails

Un oggetto Microsoft.TeamFoundation.Lab.Workflow.Activities.LabEnvironmentDetails che archivia le informazioni che identificano l'ambiente da utilizzare per una compilazione, distribuzione ed uno scenario di test.

TestParameters

Un oggetto Microsoft.TeamFoundation.Lab.Workflow.Activities.RunTestDetails che archivia i dettagli del parametro di test richiesti per creare l'esecuzione del test automatizzato.

Gli argomenti seguenti vengono dichiarati nell'ambito globale:

Argomento

Type

Metadata

ProcessParameterMetaDataCollection

Verbosity

Un valore enumerato Verbosity che specifica la quantità di informazioni scritte nel log.

BuildNumberFormat

String specifica il formato del numero di compilazione.

SupportedReasons

Un valore enumerato BuildReasonche specifica il motivo per la compilazione.

Sequenza di applicazioni di distribuzione di flusso di lavoro

Flusso di lavoro di distribuzione di applicazioni

La sequenza Flusso di lavoro di distribuzione dell'applicazione controlla l'intera compilazione, distribuzione e scenario del test.

Flusso di lavoro di distribuzione dell'applicazione dichiara le seguenti variabili:

  • BuildDetail: un oggetto IBuildDetail.

  • LabEnvironmnetUri: String specifica l'uri dell'ambiente in cui la compilazione viene implementata.

  • BuildLocation: String specifica la locazione della compilazione.

  • SnapshotId: String che specifica l'identificatore dello \ della macchina virtuale.

  • QueueBuildId: Int32 specifica l'identificatore della compilazione nella coda.

Eseguire la compilazione

Aggiornare il numero della versione

L'aggiornamento del numero di versione espande e restituisce il numero di build nell'argomento BuildNumberFormat.L'aggiornamento del numero di versione è un'attività Microsoft.TeamFoundation.Build.Workflow.Activities.UpdateBuildNumber.

Ottieni i dettagli della compilazione

L'ottenere i dettagli della compilazione restituisce i dati necessari per eseguire o accedere alla compilazione specificata nella procedura guidata del flusso di lavoro.L'oggetto IBuildDetail viene archiviato nella variabile BuildDetail.

L'ottenere i dettagli di compilazione è un'attività Microsoft.TeamFoundation.Build.Workflow.Activities.GetBuildDetail.Il modello imposta le seguenti proprietà:

  • Il risultato restituisce un oggetto IBuildDetail alla variabile BuildDetail.

Attività di compilazione necessaria

Se la compilazione è necessaria determina se una nuova compilazione è necessaria per un processo di compilazione di Team System.Se le condizioni vengono soddisfatte, il flusso di lavoro esegue la sequenza Esegui compilazione.

Attività Esegui compilazione

La sequenza Esegui compilazione avvia la compilazione, attende il completamento della compilazione, quindi imposta il percorso di compilazione.

Avvio del flusso di lavoro della compilazione

L'avvio del flusso di lavoro della compilazione accoda una nuova compilazione nel controller di compilazione specificato e restituisce l'id della compilazione in coda nella variabile QueueBuildId.L'avvio del flusso di lavoro della compilazione è un'attività RunWorkflow.Il modello imposta le seguenti proprietà:

  • BuildDefinition viene impostato su BuildDetails.BuildDefinitionName proprietà dell'argomento LabWorkflowParameters.

  • L'argomento ProjectName viene impostato sulla proprietà TeamProject della variabile BuildDetail.

Attendere il completamento della compilazione

Attendere il completamento della compilazione sospende l'esecuzione finché non la compilazione non è completa o è trascorso un intervallo di timeout.L'attività genera un'eccezione se l'intervallo viene raggiunto.L'attività restituisce lo stato della compilazione nella variabile BuildStatus, ed i dati sulla nuova compilazione dalla variabile ChildBuildDetail .L'attendere il completamento della compilazione è un'attività WaitForWorkflow.Il modello stabilisce i valori delle proprietà seguenti:

  • AllowPartiallySucceededBuild è impostato come vero

  • BuildDetails restituisce i nuovi dati di compilazione alla variabile ChildBuildDetail.

  • MaxWaitTime è impostato su infinito.

  • QueueBuildId restituisce l'id della coda della variabile QueueBuildId di compilazione.

Impostare la Posizione di compilazione.

Stabilire la Posizione di compilazione assegna la posizione della compilazione dalla variabile ChildBuildDetail alla proprietà BuildDetails.BuildUri dell' argomento LabWorkflowParameters.

Distribuzione dell'applicazione

Aggiornare il riepilogo della distribuzione

Aggiornare il riepilogo della distribuzione scrive il nome dell'ambiente di destinazione di distribuzione nella pagina di compilazione.Aggiornare il riepilogo della distribuzione è un'attività WriteDeploymentInformation .

GetBuildLocationAndBuildNumber

GetBuildLocationAndBuildNumber restituisce la destinazione finale per la compilazione alla variabile BuildLocation.GetBuildLocationAndBuildNumber è un'attività GetBuildLocationAndBuildNumber.Il modello imposta le seguenti proprietà:

  • BuildDetails viene impostato sull'oggetto BuildDetails contenuto nell'argomento LabWorkflowParameters

  • BuildNumber restituisce il numero di compilazione alla variabile BuildNumber.

  • Il risultato restituisce la posizione di compilazione alla variabile BuildLocation

  • SelectedBuild restituisce un oggetto IBuildDetail alla variabile SelectedBuildDetail contenente i dati di compilazione nel server di compilazione.

Attività Calcola percorso compilazione necessario

Se le condizioni Calcola il percorso necessario per la compilazione vengono soddisfatte, Calcola il percorso di compilazione aggiunge le sottocartelle di configurazione della compilazione e della piattaforma alla destinazione finale.

Attività Se l'utente ha selezionato l'ambiente archiviato

Se l'utente ha selezionato l'ambiente di archiviazione controlla che l'ambiente venga distribuito, e Indica Errore genera un'eccezione se l'ambiente viene archiviato nella libreria.

Ottieni l'ambiente Lab

L'ottenere l'ambiente lab restituisce l'URI dell'ambiente alla variabile LabEnvironmentUri.L'ottenere l'ambiente lab è un'attività GetLabEnvironmentUri.Il modello imposta le seguenti proprietà:

  • LabEnvironmentName è impostato al valore della EnvironmentDetails.LabEnvironmentName proprietà dell'argomento LabWorkflowParameters.

  • ProjectName viene impostato sul valore della proprietà TeamProject della variabile BuildDetail.

  • Result restituisce l'URI dell'ambiente lab alla variabile LabEnvironmentUri.

  • TeamProjectLabLocationName è impostato al valore della EnvironmentDetails.HostGroupName proprietà dell'argomento LabWorkflowParameters.

  • TfsServerUrl viene impostato su null.

Attività Ripristina snapshot

Se ripristinare lo Snapshot determina se l'utente ha richiesto che l'ambiente fosse ripristinato a uno snapshot pulito.Se la condizione viene soddisfatta, la sequenza Ripristina snapshot viene eseguita; in caso contrario Snapshot Ripristinato non specificato mostra un messaggio di avviso al riepilogo della compilazione.

Attività Ripristina snapshot

La sequenza Ripristina snapshot, Ottieni dettagli di snapshot calcola l'id dello snapshot e Ripristina ambiente lab su snapshot esegue il ripristino.

Ottieni dettagli sullo snapshot

L'ottenere dettagli sullo snapshot è un'attività GetLabEnvironmentSnapshotId.Il modello imposta le seguenti proprietà:

  • LabEnvironmentUri viene impostato sul valore della variabile LabEnvironmentUri.

  • Il risultato restituisce l'id dello snapshot alla variabile SnapshotId.

  • SnapshotName viene impostato su EnvironmentDetails.SnapshotName proprietà dell'argomento LabWorkflowParameters.

Ripristinare l'ambiente lab allo snapshot

Ripristina ambiente lab sullo snapshot è un'attività RestoreLabEnvironment.Il modello imposta le seguenti proprietà:

  • LabEnvironmentUri viene impostato sul valore della variabile LabEnvironmentUri.

  • SnapshotId viene impostato sul valore della variabile SnapshotId.

Attività Distribuzione necessaria

Se la distribuzione necessaria determina se l'utente ha richiesto una distribuzione.

Attività Esegui distribuzione

Se la condizione viene soddisfatta, la sequenza Esegui distribuzione viene eseguita.

Attendere che la capacità del flusso di lavoro sia pronta

Attendere che la capacità del flusso di lavoro sia pronta sospende l'esecuzione finché la capacità del flusso di lavoro dell'ambiente sia pronta o sia raggiunto un intervallo di timeout.Se l'intervallo di timeout è scaduto viene generata un'eccezione.Attendere che la capacità del flusso di lavoro sia pronta è un'attività WaitForWorkflowCapabilityServices.Il modello imposta le seguenti proprietà:

  • LabEnvironmentUri viene impostato sul valore della variabile LabEnvironmentUri.

  • MaxWaitTime è impostato su 20 minuti

  • RepairCapabilityBeforeWaitBegins è impostato su false.

Attività di esecuzione dello script di distribuzione

Eseguire script di distribuzione esegue la sequenza Esegui script su sistema lab su ogni script di distribuzione contenuto nell'elenco delle proprietà DeploymentDetails.Scripts dell'argomento LabWorkflowParameters.

Attività Esegui script su sistema lab

La sequenza Esegui script su sistema lab esegue lo script specificato in una macchina virtuale nell'ambiente.Esegui script su sistema lab dichiara le seguenti variabili:

Inizializzare i tag dell'agente e lo script di distribuzione

Inizializzare i tag dell'agente e lo script di distribuzione espande le macro ed i tag di script e restituisce i risultati in un oggetto ScriptDetails.Inizializzare i tag dell'agente e lo script di distribuzione è un'attività InitializeAgentSpecAndEnvironmentVariables.Il modello stabilisce i valori seguenti:

  • BuildLocation viene impostato sul valore della variabile BuildLocation.

  • DeploymentScriptDetails viene impostato sul valore della stringa ripetuta DeploymentDetails.Scripts.

  • LabEnvironmentUri imposta il valore della variabile LabEnvironmentUri.

  • Il risultato restituisce lo script espanso alla variabile scriptDetails.

Ambito dell'agente lab

L' ambito dell'agente lab determina se l'agente lab è installato ed in esecuzione nella macchina virtuale di destinazione e quindi invoca Esecuzione script di distribuzione per eseguire lo script.Un'eccezione viene generata se uno degli script fallisce su un computer.L'ambito dell'agente lab è un'attività Microsoft.TeamFoundation.Build.Workflow.Activities.AgentScopeIl modello imposta le seguenti proprietà:

  • MaxExecutionTime è impostato su infinito.

  • MaxWaitTime è impostato su 5 minuti.

  • ReservationSpec viene impostato su un oggetto Microsoft.Te:amFoundation.Build.Client.BuildAgentSpec che è la proprietà AgentSpec della variabile scriptDetails.

Eseguire lo script di distribuzione.

Esecuzione script di distribuzione esegue lo script di distribuzione nella macchina virtuale di destinazione.Esecuzione script di distribuzione è un'attività RunDeploymentScript.Il modello stabilisce i valori seguenti:

  • ScriptDetails è impostato sul valore della variabile scriptDetails.

  • ThrowOnError è impostato su true.

  • SharedLocationForNetUse è impostato sul valore della variabile BuildLocation.

Distribuzione di applicazioni completata

Application Deployment Succeeded scrive informazioni sul riepilogo della compilazione.Distribuzione di un'applicazione riuscita è un'attività WriteDeploymentInformation.

Snapshot post-distribuzione

Snapshot post-distribuzione determina se l'utente ha richiesto che uno snapshot dell'ambiente debba essere mantenuto dopo la distribuzione.Se questa condizione viene soddisfatta, la sequenza Preleva snapshot post-distribuzione viene eseguita.In caso contrario, Snapshot post-distribuzione non specificato scrive un messaggio di avviso nel log.

Attività di creazione di uno snapshot post-distribuzione

Sequenza di Preleva snapshot post-distribuzione

Preleva snapshot post-distribuzione dichiara le seguenti variabili:

  • PostDeploymentSnapshotChainId: Int64

  • PostDeploymentSnapshotName: String Il modello stabilisce il valore predefinito al valore della proprietà BuildNumber della variabile BuildDetails.

Attività Controlla nome snapshot

Controllo del Nome della Snapshot determina se un nome dello snapshot è stato specificato.Se la condizione viene soddisfatta, il nome specificato viene utilizzato; in caso contrario viene utilizzato il valore predefinito.

Prelevare Snapshot post-distribuzione

Prelevare snapshot post-distribuzione è un'attività SnapshotLabEnvironment che crea lo snapshot.Il modello imposta le seguenti proprietà:

  • LabEnvironmentUri viene impostato sul valore della variabile LabEnvironmentUri.

  • SnapshotChainId restituisce l'id dello snapshot alla variabile PostDeploymentSnapshotChainId.

  • SnapshotName è impostato sul valore della variabile PostDeploymentSnapshotName.

Prelevare con successo lo snapshot

Prelevare con successo lo snapshot scrive il nome dello snapshot sul riepilogo della compilazione.Prelevare con successo lo snapshot è un'attività WriteDeploymentInformation.

Aggiungere un collegamento di connessione allo snapshot

Aggiungere un collegamento di connessione allo snapshot scrive l'url dello snapshot sul riepilogo della compilazione.Aggiungere un collegamento di connessione allo snapshot è un'attività WriteDeploymentInformation.

Esecuzione dei test

Attività Esegui test nell'ambiente

Esecuzione dei test nell'ambiente determina se i test automatizzati erano stati richiesti.Se la condizione viene soddisfatta, la sequenza Esegui test viene eseguita.

Attività Esegui test

Eseguire test

Esegui test dichiara le seguenti variabili:

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

  • TestResults: Microsoft.TeamFoundation.Lab.Workflow.Activities.TestRunStatistics.Il modello imposta il valore predefinito ad un nuovo oggetto TestRunStatistics.

Attendere che le funzionalità di test siano pronte

Attendere che le funzionalità di test siano pronte sospende l'esecuzione finché la capacità di test dell'ambiente non sia pronta o un intervallo di timeout venga raggiunto.Se l'intervallo di timeout è scaduto viene generata un'eccezione.

Attendere che le funzionalità di test siano pronte è un'attività WaitForTestCapabilityServices.Il modello imposta le seguenti proprietà:

  • LabEnvironmentUri viene impostato sul valore della variabile LabEnvironmentUri.

  • MaxWaitTime è impostato su 20 minuti.

  • RepairCapabilityBeforeWaitBegins è impostato su false.

Esecuzione dei test

Eseguire test esegue i test e restituisce risultati di questi.Eseguire test è un'attività ExecuteRemoteTestRun.Il modello stabilisce i valori seguenti:

  • MaxWaitTime è impostato su infinito.

  • BuildNumber è impostato sul valore della variabile BuildNumber.

  • TestDirectory è impostato sul valore della variabile BuildLocation.

  • LabEnvironmentUri viene impostato sul valore della variabile LabEnvironmentUri.

  • TestParameters viene impostato sull'oggetto TestParameters contenuto nell'oggetto LabWorkflowParameters.

  • Il risultato restituisce un oggetto Microsoft.TeamFoundation.Lab.Workflow.Activities.RunTestDetails contenente i risultati dei test alla variabile TestResults.

  • Titolo imposta il nome dell'esecuzione di test al valore della proprietà BuildNumber della variabile BuildDetail.

Attività se tutti i test non sono stati superati

Se tutti i test non vengono superati determina se i test hanno avuto esito negativo ed esegue Imposta stato compilazione se la condizione viene soddisfatta.

Impostare Stato di compilazione

Impostare stato compilazione determina se il flusso di lavoro include la compilazione o la distribuzione dell'applicazione.Se questa condizione viene soddisfatta, Eseguita parzialmente imposta lo stato del flusso di lavoro al valore BuildStatus.PartiallySucceeded.In caso contrario, Operazione non riuscita imposta la variabile BuildStatus a Failed.

Vedere anche

Concetti

Attività del flusso di lavoro di Lab Management