Author Archives: Gian Maria Ricci

Pillole di TFS/VSTS: pubblicazione risultati test in una build

Dall’introduzione del Visual Studio Test Runner, estendibile con plugin, non si ha più la difficoltà di eseguire Unit Test differenti da MSTest durante una build. Tradizionalmente le difficoltà incontrate erano due -) Eseguire i test a riga di comando con una personalizzazione della build -) Convertire il risultato dei test nel formato MSTest affinché potesse […]

0  

Pillole di TFS/VSTS: pubblicazione risultati test in una build

Dall’introduzione del Visual Studio Test Runner, estendibile con plugin, non si ha più la difficoltà di eseguire Unit Test differenti da MSTest durante una build. Tradizionalmente le difficoltà incontrate erano due

-) Eseguire i test a riga di comando con una personalizzazione della build
-) Convertire il risultato dei test nel formato MSTest affinché potesse essere incluso nel risultato di una build.

Ora che i test NUnit o xUnit possono essere eseguiti direttamente con il test runner standard, si può utilizzare l’azione di esecuzione test nella build, avendo l’accortezza di avere incluso il package Nuget per il test runner apposito nel progetto di test.

image

E’ sufficiente aggiungere il package Nuget del test runner ad un progetto di test ed utilizzare il task build standard Test Assemblies per eseguire gli Unit Test durante la build.

Nel nuovo TFS / VSTS, la parte di esplorazione dei risultati dei test è stata molto migliorata, ed è quindi fondamentale che il risultato degli Unit Test sia correttamente associato alla build.

image

Ma cosa succede se per qualsiasi ragione non sia possibile utilizzare l’azione standard di esecuzione test? Ad esempio i test potrebbero essere eseguiti in altre macchine direttamente da riga di comando con esecuzione remota, oppure i test potrebbero essere eseguiti con un framework custom.

Nel nuovo sistema di build è presente un task dedicato appositamente all’upload dei risultati di test verso VSTS / TFS, chiamato appunto Publish Test Results.

image

L’aspetto più interessante di questo task è che comprende molteplici formati di output, tra cui NUnit JUnit e XUNit nativo.

image

In questo modo, anche se avete un framework di Unit Test custom per soddisfare esigenze particolari è sufficiente ad esempio fornire un output standard di tipo NUnit (https://github.com/nunit/docs/wiki/Test-Result-XML-Format) per poterlo associare direttamente alle vostre build.

Gian Maria.

Creare un clone dell’istallazione di produzione di TFS con TFS “15”

Ho appena bloggato nel blog inglese una grossa novità dell’installer della nuova versione di TFS, che per ora è identificata con il nome TFS “15”. Nel nuovo wizard è presente una opzione per automatizzare tutte le procedure di creazione di un clone o istanza di Pre-Produzione del vostro TFS.

La necessità di clonare l’ambiente è necessaria in molti scenari, prima di tutto vi permette di validare le procedure di upgrade, in questo caso create un clone del vostro TFS, eseguite le procedure di upgrade sul clone e poi con tutta calma potete verificare che dopo l’upgrade tutto funzioni correttamente.

Un altro scenario tipico è lo sviluppo di estensioni per TFS, perchè con un ambiente Clonato potete sviluppare e testare i vostri plugin o il vostro software su un clone esatto dei dati di produzione, senza interagire con il server di Produzione.

Potete leggere il post integrale nel mio blog inglese che trovate a questo indirizzo, nel quale ho aggiunto anche altri semplici consigli per minimizzare il rischio che l’ambiente Clonato possa interagire con l’ambiente di Produzione generando confusione e problemi.

Gian Maria.

Nuovo update di VSTS–7 luglio

Un altro sprint è stato deployato in Visual Studio Team Services il 7 luglio e dovrebbe ora essere disponibile per tutti gli account. Come sempre il team ha pubblicato un post con tutte le novità, ed in questo sprint sono state fatte molte modifiche alla ui ed alla usabilità.

Un aspetto interessante è l’inclusione del code coverage dei test eseguiti durante la build, metrica interessante per tutti i team che fanno uso estensivo di unit testing.

Tutte le restanti modifiche sono relativamente piccoli miglioramenti e potete quindi leggerli nel post originale.

Gian Maria.

VSTS Month – Evento Online

In occasione del VSTS Month, su cui potete leggere maggiori dettagli in questo post su MSDN, GetLatestVersion ha deciso di partecipare all’iniziativa con un evento online. Dato che GLV non è localizzata in nessuna precisa area geografica italiana, e soprattutto dato il grande numero di eventi community che ci sono negli ultimi anni, abbiamo pensato […]

Comments Off on VSTS Month – Evento Online  

Aggiornamento VSTS del 17 giugno

Questa volta l’aggiornamento è stato più rapido del previsto, il 17 giugno abbiamo avuto un altra wave di aggiornamenti su Visual Studio Team Service. Come sempre potete leggere tutti i dettagli nel blog ufficiale, qui vi farò un riassunto delle mie nuove funzionalità preferite.

Innanzitutto se avete un team corposo ed usate GitFlow è possibile che il numero delle branch in Git diventi elevato, per questo nel tab delle branches è ora disponibile una sezione “my branches” dove vedrete le branch che avete creato voi o a cui avete contribuito. In questo modo è immediato distinguere le vostre branch da quelle di altri componenti del team.

Branch picker featuring Mine

Un’altra importante novità è un nuovo header per la form dei Work Item, in particolare è ora presente in molta evidenza il bottone “Save & Close” che sicuramente è quello più utilizzato, dato che molto spesso dopo che si apre un Work Item se lo si modifica si vuole semplicemente chiudere salvando le modifiche effettuate.

Improved work item header

Per tutti coloro che usano le funzionalità di Test ed in particolare le exploratory sessions, è ora finalmente possibile avere una visualizzazione chiara di tutte le exploratory session effettuate sul progetto.

Insights in exploratory testing

Nell’addin di Chrome è ora possibile anche richiedere la registrazione del desktop da includere in un eventuale bug.

Un’altra interessantissima funzionalità è la possibilità di vedere l’andamento dei test per singole branch, questo è molto importante perché cosi si ha la chiara indicazione della qualità delle varie branch

History tab in the result summary page

La funzionalità sicuramente più corposa è però data dalla possibilità di personalizzare il Process Template introducendo stati custom. Questa funzionalità ha un intero post dedicato all’argomento, e costituisce un ulteriore importante passo verso la parità di funzionalità tra VSTS e TFS. Questo permette quindi di avere colonne personalizzabili nella Task Board, grazie alla possibilità di aggiungere stati al Work Item di tipo Task. Non è ancora possibile personalizzare in maniera avanzata le transizioni tra stati (con regole o decidere quali transizioni sono possibili), ma già questa funzionalità rende possibile personalizzare VSTS in modo che si adatti maggiormente alle vostre esigenze.

Per chi sviluppa Java invece è ora possibile effettuare analisi di codice direttamente da un task Maven, senza la necessità di impostare un server Sonar Qube, anche questa funzionalità è abbastanza corposa e descritta in dettaglio in un post dedicato.

Vi invito comunque a leggere il post ufficiale in modo da vedere tutte le novità disponibili.

Gian Maria.

Usare Azure come PAAS e non come IAAS

Si parla tanto di Cloud in questi periodi, e spesso purtroppo l’adozione del Cloud non viene fatto, a mio avviso, nel modo giusto.

Ad esempio, parlando di Azure, se si inizia l’approccio spostando e creando Virtual Machines su Azure il risultato non sempre è piacevole. Se una azienda ha già il suo sistema di virtualizzazione (vmware o Hyper-V) l’avere le VM su Azure non da vantaggi tangibili, soprattutto considerando la banda che abbiamo in Italia.

Se si vuole veramente avvantaggiarsi del Cloud, bisogna approcciare il problema da un punto di vista differente. Per fare un esempio prendo un post scritto dal caro amico Matteo (http://mattvsts.blogspot.it/2016/06/a-simple-vsts-based-pipeline-for-java.html) che spiega come creare una pipeline di Build –> Test –> Release di una app Java in un Azure Web Site.

In questo caso ci stiamo avvantaggiando del cloud in molti punti, e l’esperienza di Matteo è stata molto positiva dal punto di vista dell’operational. Pur non essendo un esperto in java, ma avendo semplicemente un progetto Java con una build di Maven è riuscito in poco tempo a mettere in produzione il prodotto automatizzando tutto il processo.

I vantaggi sono molti

1) Usiamo VSTS, per cui non più sorgenti in casa, abbiamo tutti i tool che servono per la pipeline di sviluppo nel cloud, zero manutenzione
2) Stiamo adottando un approccio DevOps, dove abbiamo automatizzato tutta la pipeline, senza dover mettere nulla in casa.
3) Stiamo rilasciando una applicazione Java standard (un War) per cui non ci stiamo legando a nessuna tecnologia proprietaria che deriva dal Cloud che abbiamo scelto (Azure).
4) Non dobbiamo gestire Tomcat perchè usiamo un approccio PAAS con Azure Web Sites.

Il punto 4 è quello che ci da vantaggio, non dobbiamo installare, manutenere Tomcat, non dobbiamo pensare a creare una infrastruttura di hosting ridondante che ci permetta di essere online 24/7 e soprattutto possiamo modificare le risorse del website a piacimento. Se abbiamo un ecommerce, nel periodo di Natale possiamo semplicemente aumentare le risorse e siamo a posto.

Se al contrario approcciamo il problema installando una VM su Azure dove mettere Tomcat … abbiamo perso in partenza, perchè non stiamo veramente sfruttando il cloud.

Gian Maria.

VSTS release del primo Giugno

Come sempre il team di VSTS ha rilasciato live un nuovo sprint, andato online il primo Giugno e quindi disponibile in tutti gli account in questi giorni (gli update sono attivati a tutti gli account incrementalmente). Come sempre potete leggere online tutti i dettagli in questo post, e qui vi darò un riassunto delle novità […]

Comments Off on VSTS release del primo Giugno  

Update VSTS – 6 Maggio

Un altro aggiornato è stato fatto a Visual Studio Team Service il 6 Maggio, come sempre l’aggiornamento non è disponibile a tutti gli account immediatamente, per cui ho deciso di attendere qualche giorno prima di fare il post.

Anche in questo aggiornamento troviamo importanti novità, che il team spesso prende da UserVoice . In questa release finalmente abbiamo la possibilità di personalizzare il Process Template includendo campi booleani che vengono rappresentati come Check-Boxes.

Checkbox control added to a work item

Altre modifiche cosmetiche sono state fatte alle board, in cui è possibile ora scegliere se vedere o meno le annotazioni.

Un’altra interessantissima modifica è la possibilità di personalizzare le tile di tipo Query nelle Dashboard, cambiando i colori di sfondo in maniera condizionale. Ad esempio nella figura sottostante è stato chiesto di visualizzare il background in rosso se il numero di Bug Attivi eccede il valore di 40.

Selecting rules and colors for Query Tiles

Per quanto riguarda il Release Management, è stata introdotta la possibilità di utilizzare un repository Git o TFVC come sorgente di artefatti. In questo modo non è più necessario essere costretti a pubblicare tramite build script o altri artefatti per poterli usare in una definizione di RM.

Sono state introdotte inoltre REST API per interagire con il Release Management, in modo da rendere semplice interagire tramite codice con RM.

Come sempre ci sono altre modifiche minori e potete leggere tutta la lista nel sito ufficiale di Visual Studio.

Gian Maria.

Live update nella Kanban Board in VSTS

Una delle ultime novità per la Kanban Board in VSTS offre la possibilità di abilitare il “live update” per la board, attivabile selezionando una semplice icona a fianco delle impostazioni.

image

Figure 1: Icon to enable live update to Kanban Board

Una volta abilitata, la board rifletterà in tempo reale ogni cambiamento dei work item che sono rappresentati nella board stessa. Questo significa che modificando o riordinando o cambiando colonna o in generale modificando qualsiasi proprietà di un Work Item da qualsiasi sorgente (web, Visual Studio, Integratione con Excel, etc), i cambiamenti si rifletteranno immediatamente nella board.

Questa possibilità è interessante in accoppiata con la visione in full screen (l’icona a destra dei settaggi), che permette di visualizzare la board a pieno schermo. Questa funzionalità, assieme al Live Update, permette di mettere un monitor o televisione che mostra sempre in tempo reale la situazione della board.

Questa funzionalità è per ora solamente disponibile per VSTS.

Gian Maria.