Condividi tramite


Personalizzazione del flusso di lavoro di Lab Management

Il flusso di lavoro end-to-end di Visual Studio Lab Management consente di automatizzare la compilazione dell'applicazione, la distribuzione della nuova compilazione in un ambiente virtuale e l'esecuzione dei test sulla nuova compilazione. LabDefaultTemplate viene fornito come modello predefinito del flusso di lavoro ed è possibile utilizzarlo immediatamente. Per informazioni sull'utilizzo di LabDefaultTemplate, vedere Procedura: distribuire un'applicazione in un ambiente virtuale. Il processo di compilazione, distribuzione e test potrebbe essere leggermente diverso a causa dei requisiti differenti. Ad esempio, un flusso di lavoro potrebbe richiedere la copia dei file binari del test dal percorso di compilazione normale mentre un altro flusso di lavoro richiede la copia dei file binari del test da un percorso temporaneo oppure un flusso di lavoro potrebbe richiedere che l'ambiente venga salvato nella libreria per ogni tester da cui distribuire mentre un altro flusso di lavoro non richiede alcun salvataggio dell'ambiente. Dal momento che si basa su Windows Workflow 4.0, il modello predefinito del flusso di lavoro è completamente estendibile e personalizzabile ed è possibile personalizzare LabDefaultTemplate per soddisfare requisiti specifici.

In questo argomento vengono descritti i passaggi generali per la personalizzazione del modello di flusso di lavoro con cinque esempi di scenari in cui la personalizzazione è estremamente utile.

  • Specificare un percorso dei file binari del test diverso dal percorso di compilazione.

  • Supportare le distribuzioni di applicazioni che richiedono il riavvio dopo l'installazione.

  • Leggere i file del controllo del codice sorgente.

  • Accedere a una destinazione finale di compilazione utilizzando l'account dell'agente di compilazione.

  • Accedere ad altri percorsi con l'account del servizio lab.

Concetti di base della personalizzazione del flusso di lavoro

Tre sono i concetti principali che riguardano la personalizzazione del flusso di lavoro.

  • Modello: il modello definisce la sequenza delle attività o dei passaggi che fanno parte del flusso di lavoro. Il modello è basato su Windows Workflow Foundation 4.0 e viene archiviato come file con estensione xaml nel controllo del codice sorgente. Per caricare il modello nell'editor del flusso di lavoro, fare doppio clic sul file con estensione xaml. Nell'editor, sarà possibile visualizzare le varie attività e sequenze che determinano il flusso di lavoro. È quindi possibile utilizzare le variabili con diversi ambiti, logica condizionale, cicli e così via per programmare il modello, esattamente come con qualsiasi altro linguaggio di programmazione. Windows Workflow Foundation consente di personalizzare il modello lab predefinito in base alle proprie esigenze.

  • Attività: l'attività è il blocco predefinito del flusso di lavoro e il modello lab predefinito utilizza molte attività. Attività aggiuntive sono disponibili nella Casella degli strumenti sotto l'intestazione Attività Team Foundation Lab Management. Per utilizzare un'attività nel flusso di lavoro, trascinarla dalla casella degli strumenti nell'editor del flusso di lavoro di Visual Studio sulla posizione corretta nel modello. È possibile determinare i parametri di input e output esaminando le proprietà dell'attività. Per ulteriori informazioni su ogni attività Lab Management, vedere Attività di Team Foundation Lab Management. Se le attività incluse nel prodotto non sono sufficienti a soddisfare le proprie esigenze, è possibile aggiungere nuove attività.

  • Argomenti: è possibile creare nuovi argomenti per gli input dell'utente necessari e passare questi valori alle attività. Fare clic sulla scheda Argomenti nella parte inferiore della finestra dell'editor del flusso di lavoro per visualizzare gli argomenti esistenti. Se si creano nuovi argomenti, verranno visualizzati nella sezione Parametri processo di compilazione della scheda Processo nella definizione di compilazione.

Questi concetti vanno presi in considerazione quando si esaminano i due esempi seguenti in cui è necessaria la personalizzazione. Nel primo esempio si indica come modificare l'argomento In di un'attività esistente in un modello e nel secondo esempio si indica come aggiungere nuove attività dalla casella degli strumenti. Con questi esempi viene fornito un contesto sufficiente per personalizzare LabDefaultTemplate in base ai requisiti.

Prima di iniziare la personalizzazione

È necessario completare alcuni passaggi generali prima di iniziare a personalizzare il modello di flusso di lavoro LabDefaultTemplate. Nel diagramma che segue vengono illustrati tali passaggi.

Percorso della cartella dei modelli di flusso di lavoro predefiniti

Per preparare la personalizzazione

  1. In Team Explorer, fare doppio clic sul nodo Controllo del codice sorgente per il progetto team.

  2. In Esploratore controllo codice sorgente, espandere l'albero Controllo del codice sorgente e trovare la cartella $/<Nome_progetto>/BuildProcessTemplates.

  3. Eseguire il mapping di questa cartella a una cartella locale, ad esempio C:\Sources.

  4. Fare clic con il pulsante destro del mouse sul file LabDefaultTemplate.xaml e scegliere Leggi ultima versione.

  5. Fare una copia del file LabDefaultTemplate.xaml e assegnarle un nuovo nome, ad esempio, LabDefaultTemplate_customize.xaml.

  6. Aggiungere il nuovo file al controllo del codice sorgente.

  7. Fare doppio clic sul nuovo file. Il file verrà aperto nell'editor del flusso di lavoro di Visual Studio.

Quindi, verrà personalizzata la copia appena creata del modello predefinito del flusso di lavoro.

Personalizzazione per specificare un percorso dei file binari del test diverso dalla destinazione finale della compilazione

Nel modello predefinito del flusso di lavoro, LabDefaultTemplate, si presuppone che il percorso dei file binari del test sia uguale a quello in cui le compilazioni vengono rilasciate. Tuttavia, nella situazione attuale, è possibile non ottenere il codice del test compilato insieme al codice del prodotto. Se si verifica questa situazione, è possibile personalizzare il modello in modo da accettare i binari del test da una posizione diversa. Questa personalizzazione comprende tre passaggi, come illustrato di seguito.

Trascinamento di un'attività di Lab Management dalla casella degli strumenti

Definizione dell'argomento In del flusso di lavoro per specificare il percorso dei file binari del test

Per definire un argomento In

  1. Fare clic sulla scheda Argomenti nella parte inferiore della finestra dell'editor del flusso di lavoro.

  2. Fare clic su Crea argomento. Nella casella di testo digitare il nome dell'argomento, ad esempio TestBinariesLocation. Nell'elenco a discesa Direzione fare clic su In. Nell'elenco a discesa Tipo di argomento, fare clic su Stringa.

Passaggio di un valore dell'argomento all'attività ExecuteRemoteTestRun

Questa attività crea un'esecuzione dei test remota, attende il completamento dell'esecuzione dei test e quindi aggiorna le informazioni sulla compilazione con le statistiche sull'esecuzione dei test.

Per passare il valore dell'argomento

  1. Nell'editor del flusso di lavoro, scorrere fino all'attività Test in esecuzione. Sebbene il nome visualizzato dell'attività è Test in esecuzione, il tipo di attività è ExecuteRemoteTestRun.

  2. Fare clic con il pulsante destro del mouse sull'attività, quindi scegliere Proprietà. Viene visualizzata la finestra Proprietà nell'angolo inferiore destro contenente gli argomenti in e out di questa attività. Uno degli argomenti in di questa attività è TestDirectory, che imposta il percorso dei file binari dei test.

  3. Nella finestra Proprietà fare clic su TestDirectory. Alla fine della riga fare clic sui puntini di sospensione (...).

  4. In Editor espressioni, digitare TestBinariesLocation, quindi fare clic su OK.

  5. Scegliere Salva LabDefaultTemplate_customize.xaml dal menu File.

  6. Nella barra dei menu di Esplora controllo codice sorgente fare clic sull'icona Archivia.

È ora possibile utilizzare il file personalizzato con estensione xaml per creare nuove definizioni di compilazione. Il nuovo argomento In TestBinariesLocation verrà visualizzato nella sezione Varie della scheda Processo nella definizione di compilazione dove è possibile assegnare un valore.

Personalizzazione per supportare i programmi di installazione delle applicazioni che richiedono il riavvio del computer dopo la distribuzione

Il modello predefinito del flusso di lavoro LabDefaultTemplate non esegue il riavvio dell'ambiente virtuale dopo la distribuzione dell'applicazione. È possibile personalizzare il modello per supportare le applicazioni che possono richiedere il riavvio dopo la distribuzione. Se l'applicazione viene distribuita manualmente in un ambiente virtuale, si riavvia solo la macchina virtuale in cui l'applicazione è stata installata. Visual Studio Lab Management non supporta le operazioni sulle singole macchine virtuali di un ambiente. Di conseguenza, per riavviare un computer è necessario riavviare tutti i computer dell'ambiente virtuale.

Nota di avvisoAttenzione

Assicurarsi che gli script di distribuzione non riavviino mai la macchina virtuale. In caso contrario, l'agente di compilazione che esegue lo script di distribuzione perde la connessione con il controller di compilazione e il flusso di lavoro potrebbe arrestarsi.

Il riavvio delle macchine virtuali dopo la distribuzione della nuova compilazione comporta l'aggiunta di tre attività a LabDefaultTemplate:

  1. Arrestare l'ambiente.

  2. Avviare l'ambiente

  3. Attendere che le macchine virtuali vengano avviate prima di procedere con il resto del flusso di lavoro.

Arrestare l'ambiente.

È possibile aggiungere un'attività per arrestare l'ambiente al modello predefinito del flusso di lavoro trascinando l'attività StopLabEnvironment dalla Casella degli strumenti al modello di flusso di lavoro e inizializzando le variabili dell'attività.

Per arrestare l'ambiente

  1. Nell'editor del flusso di lavoro, scorrere fino a un'attività con il nome visualizzato Distribuzione dell'applicazione riuscita.

  2. Scegliere Casella degli strumenti dal menu Visualizza. Viene visualizzata la casella degli strumenti sul lato sinistro con un elenco di Attività Team Foundation Build. Scorrere l'elenco delle attività fino a visualizzare l'elenco di Attività Team Foundation Lab Management.

  3. Nella casella degli strumenti, fare clic sull'attività StopLabEnvironment. Trascinarla nell'editor del flusso di lavoro e posizionarla prima dell'attività Distribuzione dell'applicazione riuscita.

  4. Fare clic con il pulsante destro del mouse sull'attività, quindi scegliere Proprietà. Viene visualizzata la finestra delle proprietà con gli argomenti In e Out per questa attività. Si noti che il flusso di lavoro dispone già di una variabile denominata LabEnvironmentUri che fa riferimento all'URI dell'ambiente.

  5. Fare clic sulla scheda Variabili. Viene visualizzato l'elenco delle variabili.

  6. Nella riga LabEnvironmentUri e sotto la colonna Predefinito, fare doppio clic su Immettere un'espressione VB. Nella casella di testo digitare LabEnvironmentUri. Viene visualizzato l'elenco degli utilizzi esistenti del parametro nell'editor consentendo di selezionare il valore dall'elenco anziché digitarlo.

Avviare l'ambiente

È possibile aggiungere un'attività per avviare l'ambiente al modello predefinito del flusso di lavoro trascinando l'attività StartLabEnvironment dalla casella degli strumenti al modello di flusso di lavoro e inizializzando le variabili dell'attività.

Per avviare l'ambiente

  1. Nella casella degli strumenti, fare clic sull'attività StartLabEnvironment. Trascinarla nell'editor del flusso di lavoro e posizionarla prima dell'attività Distribuzione dell'applicazione riuscita e dopo l'attività StopLabEnvironment.

  2. Fare clic con il pulsante destro del mouse sull'attività, quindi scegliere Proprietà. Viene visualizzata la finestra delle proprietà con gli argomenti In e Out per questa attività. Di nuovo, si noti che il flusso di lavoro dispone già di una variabile denominata LabEnvironmentUri che fa riferimento all'URI dell'ambiente.

    Fare clic sulla scheda Variabili. Viene visualizzato l'elenco delle variabili.

    Nella riga LabEnvironmentUri e sotto la colonna Predefinito, fare doppio clic su Immettere un'espressione VB. Nella casella di testo digitare LabEnvironmentUri. Viene visualizzato l'elenco degli utilizzi esistenti del parametro nell'editor consentendo di selezionare il valore dall'elenco anziché digitarlo.

Attendere che i computer vengano riavviati prima di procedere con il resto del flusso di lavoro.

È possibile aggiungere il tempo di attesa per l'avvio delle macchine virtuali trascinando l'attività Ritardo dalla casella degli strumenti al modello di flusso di lavoro e inizializzando le variabili dell'attività. Questa attività è disponibile nella scheda Primitive della casella degli strumenti.

Per attendere l'avvio delle macchine virtuali

  1. Nella casella degli strumenti, fare clic sulla scheda Primitive.

  2. Fare clic sull'attività Ritardo. Trascinarla nell'editor del flusso di lavoro e posizionarla prima dell'attività Distribuzione dell'applicazione riuscita e dopo l'attività StartLabEnvironment.

  3. Fare clic con il pulsante destro del mouse sull'attività, quindi scegliere Proprietà. Viene visualizzata la finestra delle proprietà con gli argomenti In e Out per questa attività. Si noti che il flusso di lavoro dispone già di una variabile denominata Durata che fa riferimento al tempo di attesa.

  4. Nella finestra Proprietà, fare clic su Durata e quindi sui puntini di sospensione (...).

  5. In Editor espressioni digitare il tempo di attesa (ad esempio, 10 minuti) nel formato TimeSpan.FromMinutes(10).

Dopo avere modificato questo modello, archiviarlo nel controllo del codice sorgente e utilizzarlo per creare una nuova definizione di compilazione per distribuire le applicazioni che richiedono il riavvio dopo l'installazione.

Personalizzazione per leggere i file del controllo del codice sorgente

Se si creano attività personalizzate che vengono utilizzate nel modello di flusso di lavoro, verificare che l'agente di compilazione che comunica utilizzando l'account del servizio lab, possa accedere a tali attività. Poiché queste attività devono essere archiviate nel sistema di controllo del codice sorgente come assembly personalizzati, è necessario assicurarsi che l'account del servizio lab disponga dell'autorizzazione per leggere il percorso in cui gli assembly personalizzati vengono archiviati. Per ulteriori informazioni sull'account del servizio lab, vedere Procedura: configurare l'account del servizio per l'integrazione del test e del flusso di lavoro. È possibile concedere le autorizzazioni all'account del servizio lab tramite il comando tf permissions. Ad esempio, per concedere le autorizzazioni in lettura all'account del servizio lab mydomain\labAccount nel percorso $/MyProject/CustomAssemblies, è necessario eseguire un comando simile al seguente: 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

Personalizzazione per accedere a una destinazione finale di compilazione utilizzando l'account dell'agente di compilazione

L'agente di compilazione che esegue il flusso di lavoro lab accede alla destinazione finale della compilazione utilizzando l'account del servizio lab. Se si desidera che l'agente di compilazione utilizzi invece l'account dell'agente di compilazione, è possibile personalizzare il modello del flusso di lavoro. Individuare nel modello l'attività RunDeploymentScript che esegue gli script di distribuzione. Questa attività espone la proprietà SharedLocationForNetUse che definisce il percorso a cui si accede utilizzando l'account del servizio lab. <mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="[BuildLocation]" />Per accedere alla destinazione finale con l'account dell'agente di compilazione anziché l'account del servizio lab, eliminare la proprietà dal modello o impostare il valore di questa proprietà su null ({x: Null}) come illustrato nel seguente esempio: mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="{x:Null}" />

Personalizzazione per accedere ad altri percorsi con l'account del servizio lab

Se l'esecuzione dell'agente di compilazione con l'account del servizio lab deve leggere percorsi diversi dalla destinazione finale di compilazione, è possibile modificare il valore della proprietà SharedLocationForNetUse dal valore predefinito [BuildLocation] nel percorso desiderato. Ad esempio, per l'agente di compilazione in esecuzione con l'account del servizio lab per accedere alla directory \\contoso\scripts, si avrebbe: <mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="\\contoso\scripts" />

Vedere anche

Attività

Creare una definizione di compilazione di base

Riferimenti

Introduzione per gli sviluppatori di Windows Workflow Foundation (WF) in .NET 4

Concetti

Utilizzo di un lab virtuale per il ciclo di vita dell'applicazione

Altre risorse

Attività di Team Foundation Lab Management

Definire il processo di compilazione

Cronologia delle modifiche

Data

Cronologia

Motivo

Ottobre 2010

Sono state aggiunte due illustrazioni che riepilogano diversi passaggi della personalizzazione del flusso di lavoro.

Miglioramento delle informazioni.