Unit testing e coverage con Visual Studio 2012

Dopo aver provato i principali framework di unit testing su .Net (MSTest, MbUnit, NUnit e xUnit) ho scelto NUnit come framework di riferimento.

Il problema degli ambienti di terze parti è che fino a Visual Studio 2010 non era possibile eseguire i test direttamente dall’IDE e la soluzione era quella di utilizzare plugin quali Resharper o TestDriven.Net

Finalmente in Visual Studio 2012 è stato aggiunto il supporto per i framework di test di terze parti!

L’utilizzo è reso semplicissimo in quanto è sufficiente installare l’adapter tramite l’Extension Manager.

Ad esempio per NUnit è disponibile ”Unit Test Adapter“:nunit-test-adapter-vs2012

Gli adapter disponibili attualmente sono:

  • NUnit
  • xUnit.net
  • MbUnit
  • QUnit
  • Jasmine

A questo punto è possibile utilizzare il test runner integrato in Visual Studio:

vs2012-test-explorer-with-nunit

L’integrazione tra Visual Studio 2012 e i framework di test di terze parti ha anche il vantaggio collaterale che diventa disponibile il code coverage!

Basta selezionare “Analyze Code Coverage” per il test selezionato o per tutti i test per avere le statistiche di coverage e per avere un riscontro visivo del coverage direttamente sul codice sorgente.

code-coverage-vs2012-nunit

Share

Che c’azzecca TFS con i metodi Agili? Ve lo racconto al Microsoft Dev Camp – Bologna

Giovedì 8 Novembre la community DotDotNet vi invita al Microsoft Dev Camp a Bologna.

L’evento è completamente gratuito e suddiviso in due parti.

Durante la mattina sarà possibile confrontarsi sui temi quali lo sviluppo su Windows 8, Windows Phone e Azure in un Lab pratico e interattivo.

Il pomeriggio invece seguirà un formato classico con alcune sessioni relative a Windows Azure, allo sviluppo di giochi, a TFS e ASP.Net.

Se non vi ho ancora annoiato abbastanza parlando di metodi Agili, SCRUM, TDD o Continuous Integration o se invece non ne avete ancora sentito parlare nel pomeriggio terrò una sessione su come sfruttare Team Foundation Server 2012 a supporto di un team Agile.

Come al solito al termine ci fermeremo a cena assieme.

Ci vediamo lì.

Agenda

Riporto il calendario completo dell’evento

ore 9.00

 


Registrazione

ore 9.30

 

Laboratorio Windows 8, Windows Phone e Azure

 

ore 13.30

Pranzo libero

ore 14.30

Anteprima Windows 8 e Windows Azure 

ore 15.00

Lorenzo Barbieri – Sviluppo giochi per Windows 8

C++ e DirectX/XAML, XAML e .NET, HTML 5 e JavaScript, MonoGame, Unity, altri framework open e closed. Ci sono moltissimi modi per realizzare giochi per il Windows Store che sfruttano appieno le caratteristiche di Windows 8 come il touch, la tastiera e il mouse, il supporto ai controller XBOX….

 

ore 16.00

Pausa

ore 16.15

Stefano Benedetti – Tecniche agili su TFS 2012: un esempio pratico

 

Test driven development, continuous integration, release often and early, visibility: sono alcuni dei principi e delle pratiche cardine del mondo Agile.
In questa sessione vedremo come concretizzarli con Visual Studio, il nuovo Team Foundation Server 2012 ed i suoi template Agili al fine di migliorare il processo di sviluppo ed il project management.

ore 17.15

Luca Milan e Igor Antonacci – Novità di ASP.NET 4.5 

In questa sessione, verranno illustrate le principalinovità di ASP.NET 4.5 attraverso lo sviluppo, passo passo, di un’applicazione Web moderna e responsiva. Con l’uso di Visual Studio 2012, vederemo com’è semplice introdurre le principali tecniche di ottimizzazione.

ore 18.15

Fine lavori

Location e data

Hotel Amadeus

Via M.E.Lepido 39
40132  Bologna 

Giovedì 8 novembre 2012 ore 9.00

Registrazione

L’evento è gratuito ma è richiesta la registrazione

Registrami al Microsoft Dev Camp a Bologna

Share

Unit Test e AutoCad: si può fare!

Lo sviluppo di nuove feature e/o applicazioni integrate con AutoCad è diventato incredibilmente più produttivo da quando sono state introdotte le librerie ObjectArx in formato .Net.

L’unico (grosso) limite che ho riscontrato fino a poco tempo fa è stata l’impossibilità di utilizzare framework di test e di mocking.

Questo perchè i plugin sviluppati devono necessariamente essere caricati lanciando AutoCad stesso e funzionano nel thread principale della UI (e ovviamente non è possibile mokkare Autocad…).

Fino ad oggi quindi i test li avevo scritti completamente a mano, creando man man tutti gli oggetti necessari.

Recentemente ho trovato questa piattaforma di automazione: Gallio.

Gallio

Oltre a fornire il supporto per tutti i principali framework di test (NUnit, MSTest, xUnit ecc) e ai principali strumenti di mocking e di continous integration, Gallio è in grado di automatizzare l’esecuzione di test all’interno di Autocad.

Il funzionamento alla base è concettualmente semplice: Gallio carica uno [W:shim|en|Shim_(computing)] all’interno di AutoCad che si occupa di intercettare le chiamate alle API e di eseguire i comandi.

Il testing su Autocad non è integrato nell’IDE di Visual Studio ma si tratta di una lacuna veramente minima in quanto è comunque disponibile un’interfaccia GUI simile a quella di nUnit oltre ovviamente al runner a riga di comando (il che chiude il cerchio in quanto è possibile far eseguire i test su un server di Continuous Integration).

I dubbi sono per ora due.

Il primo riguarda uno scarsa partecipazione e dinamicità nello sviluppo di Gallio; l’ultima release risale a novembre 2009.

In secondo luogo viene un po’ meno uno dei principi base dei test unitari: la rapidità di esecuzione.
Per eseguire i test infatti Gallio deve caricare 2 volte AutoCad: una prima volta ad ogni rebuild della libreria dei test ed una seconda volta per eseguirli richiedendo quindi alcuni secondi di attesa.

Share