Team Foundation Service è il fratellino on-the-cloud di TFS 2012: mette a disposizione gran parte delle feature del TFS “vero” (source control, workitems, planning tools, feedback management…) senza la necessità di dover gestire una architettura on-premise.
Ed è gratuito fino a 5 utenti.
Una delle feature che mi hanno convinto a provarlo – esistono tanti altri sistemi simili, GitHub in primis – è la possibilità di sfruttare un sistema di Continuous Integration hostato sul cloud.
Ve lo trovate nel TeamExplorer alla voce “Builds” (guarda caso la stessa di TFS 2012).

A partire dal template standard in pochi click è possibile creare una nuova build che compila una solution e lancia i relativi test.
E finalmente arriviamo al titolo del post…
L’inghippo è che i test vengono lanciati utilizzando il test runner di Visual Studio che, di default, supporta solamente il framework di test di Microsoft: come si fa se abbiamo test scritti con NUnit o xUnit?
Nel Visual Studio “locale” la risposta è semplice: basta scaricare un adapter per il nostro framework di test e il gioco è fatto. Ad esempio qua trovate l’adapter per NUnit.
Una cosa simile è fattibile anche su TFService, ma la procedura è leggermente più complicata. Occorre infatti:
- Scaricare il .vsix dell’adapter per il framework di unit test, rinominarlo in .zip e scompattarlo;
- Fare checkin in TFService delle DLL contenute nel .vsix;
- Dal Team Explorer di Visual Studio andare su Builds –> Actions –> “Manage Build Controllers…”;

- Nelle proprietà dell’Hosted Build Controller valorizzare il campo “Version control path to custom assemblies” con il path delle DLL appena checkinate

That’s it! Rilanciate la build e TFService lancerà i vostri test NUnit!
Che dire…
Build Services è ancora in fase di preview quindi certi spigoli sono assolutamente giustificabili, speriamo che nella versione definitiva vengano semplificati anche questi aspetti!