Tests unitarios con NUnit (u otros) con VS11 y en TFSService

Con Visual Studio 2010 para poder correr tests unitarios con NUnit teníamos que hacer un poco de trabajo extra, desde instalar una extensión que nos creaba un tipo de proyecto especial, utilizar plugins como TestDriven o simplemente correr los tests desde el runner de NUnit. Ahora con VS11 tenemos esta integración mucho más sencilla, tanto con NUnit como con otros frameworks de test.

Lo que tenemos que hacer es irnos al extension manager de VS11 (Tools ->  Extension Manager ) y bajar por el árbol hasta Online Extensions -> Visual Studio Gallery -> Tools -> Testing. En nuestro caso, seleccionaremos NUnit Test Adapter.

Como veis, ya hay otros adaptadores disponibles y seguro que irán apareciendo más. Los adaptadores lo que son es un puente entre los comandos a los que llama Visual Studio ( como podrían ser «descubre tests», «corre tests», etc ) y las propias llamadas del framework con el que se trabaje. Esto permite que se puedan integrar todos los diferentes tests unitarios en el IDE y tener una mejor experiencia. Podéis leer más información en este artículo de Peter Provost.

Al añadir la extensión de Visual Studio este nos pide reiniciar y al hacerlo, voilà!! Ya tenemos nuestros tests con NUnit pasándose y mostrando el resultado en la ventana de Test Explorer. Obviamente, tendremos que haber incluido, preferiblemente por NuGet, la librería de NUnit para poder compilar los tests.

Es curioso ver como el primer tests de NUnit tarda un poquitín más que el primer test de MSTest.

Si tuviéramos una build de integración continua configurada en el nuevo servicio de builds de TFSService ( como vimos en el artículo de ayer ) y subiéramos nuestros cambios a TFSService, podríamos ver que los tests de NUnit no se están pasando, ya que las máquinas de TFSService, no lo traen configurado por defecto. Por suerte, arreglar esto es algo muy sencillo.

Primero de todo nos vamos a bajar la misma extensión de Visual Studio a nuestro ordenador (a no ser que ya lo hubiéramos hecho antes en lugar de instalarla por NuGet). Esto lo podemos hacer accediendo a la siguiente página http://aka.ms/nunit-vs11. Cuando tengamos el vsix en nuestro disco duro, le cambiamos la extensión a .zip y lo descomprimimos a una carpeta.

Copiamos todas las dlls y las metemos en una carpeta de nuestro control de código fuente.

 Ahora solo hace falta indicarle a nuestro controlador de builds que los custom assemblies los busque en esta carpeta. Así que nos vamos a la sección de builds del Team Explorer, clicamos sobre Actions y seleccionamos la acción Manage Build Controllers

En la ventana de configuración que nos sale, seleccionamos el Hosted Build Controller

Y accedemos a sus propiedades y modificamos el valor de Versión Control Path to Custom Assemblies al valor adecuado en nuestro caso.

 

Ya podemos volver a correr la build y podremos ver como se pasan tanto los tests de MSTest como los de NUnit.

Un saludo!!

Fuente: http://blogs.msdn.com/b/visualstudioalm/archive/2012/03/27/build-on-the-team-foundation-service.aspx

3 comentarios sobre “Tests unitarios con NUnit (u otros) con VS11 y en TFSService”

  1. Pues nada.. he revisado y no detecta los tests, estos fallan (como debe ser) en VS, pero el TFS los ignora… Con MSTest no tengo ningun problema.

  2. Hola Enrique,

    lo estás probando en TFSService o en un TFS2012? Si es un TFSService, si quieres me das acceso al proyecto y le hecho un ojo.

    Por otra parte, fijate que el path que pongas los cutom assemblies no tengas las dlls de NUnit dentro de otro directorio. Tienen que estar directamente en el directorio que indiques.

    Un saludo!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *