2011-10-18 18 views
5

La mia domanda: Come posso eseguire uno script di distribuzione dal modello di build di TFS 2010 su un sistema remoto in cui è attivo solo un agente MSTest?Eseguire lo script di distribuzione dal flusso di lavoro di generazione TFS sul sistema remoto utilizzando solo l'agente MSTest

So che questo può essere fatto con l'attivazione della sezione di distribuzione nel file di configurazione delle impostazioni di test, ma questo non è abbastanza flessibile. Di notte viene eseguito un build. Quando la compilazione ha esito positivo, uno script di distribuzione viene posizionato in un punto di rilascio. La posizione di rilascio è specifica per data, progetto e build. Questi parametri sono disponibili nel modello di build TFS che utilizziamo.

Non ho Lab Management disponibile, solo un server fisico. Preferirei non rovinare il server fisico con un agente di build aggiuntivo per eseguire solo la distribuzione. L'agente MSTest è apparentemente in grado di eseguire script di distribuzione, ma come faccio a utilizzare tale funzionalità dal flusso di lavoro di generazione TFS. Ad esempio, posso utilizzare l'attività RunDeploymentScript senza Lab Management?

risposta

5

PSExec è un ottimo strumento per l'esecuzione di script su computer remoti. Lo uso in Team Deploy che consente di installare MSI su computer remoti da Team Build. È anche possibile eseguire PowerShell su computer remoti, ma è un po 'più complicato da configurare. Un'altra opzione è utilizzare MSDeploy. Esiste un'opzione di comando che consente di eseguire qualsiasi comando su un computer remoto. Di solito utilizzo un'attività InvokeProcess per chiamare uno script PowerShell sul server di build. Dallo script PowerShell ho chiamato MSDeploy per eseguire uno script PowerShell remoto su un server di destinazione. Sembra male ma ha funzionato bene.

Non è possibile eseguire RunDeploymentScript sul computer di destinazione. È possibile utilizzare un modello modificato per la distribuzione in un ambiente fisico. Here is a good post on doing this.. Le opzioni di cui sopra non hanno bisogno di alcun agente su di esso. È possibile utilizzare l'attività di gestione del laboratorio ExecuteRemoteTestRun senza Lab Management per eseguire i test MTM con l'agente di test con un controller di test registrato alla raccolta del progetto (Test Manager).

Fatemi sapere se avete domande su una di queste opzioni.

+0

la vostra risposta è in linea con l'approccio che abbiamo adottato anche in futuro. Ieri abbiamo identificato PSExec come possibile soluzione al problema. È così entusiasmante vedere un agente di prova che è in grado di eseguire script di distribuzione, ma non sembra esserci un modo diretto per utilizzare questa funzionalità da un flusso di lavoro di build. In ogni caso, per il pubblico più numeroso, questa è la risposta corretta, grazie! – kroonwijk

+0

Ottimo! Sì, sarebbe bello approfittare di più di queste funzionalità. La definizione di build Lab Mangement e le modifiche alla distribuzione dell'ambiente fisico utilizzano entrambi l'agente build per eseguire gli script di distribuzione. In TFS 11, le distribuzioni di Lab Management supporteranno gli ambienti fisici con quelli che vengono definiti "ambienti standard". Hanno anche semplificato le installazioni degli agenti e richiedono solo l'agente di test. Niente più lab e build agent per macchine negli ambienti. Fammi sapere se incontri problemi con PSExec. – MikeDouglasDev