Una sinfonía en C#

Un pequeño aporte a la comunidad de habla hispana.

[VIDEO SERIES] Azure para desarrolladores web

En el último mes he publicado algunos videos sobre los conceptos básicos para crear y publicar sitios web en Azure desde el punto de vista de un desarrollador web (en este caso yo mismo) los mismo están en español publicados en Channel 9, dejo los links:

Lo interesante de los videos es que son cortos y van siguieno el mismo ejemplo paso a paso.

En el futuro planeo seguir agregando más al listados. Nos leemos.

Cómo ejecutar unit test con Azure usando Integración continua

En posts anteriores vimos cómo trabajar con entrega continua en Azure y cómo personalizar el build con Kudu. Vamos a utilizar esta combinación para ejecutar nuestras pruebas unitarias automáticamente cuando hacemos push en nuestro repositorio y si fallan evitar que se despliegue la aplicación.

Paso a paso

Primero necesitamos un repositorio, en este caso he utilizado github, y después creamos un sitio web en Azure y lo conectamos al repositorio (estos pasos están mejor detallados en este post)

image

Una vez conectado y con nuestro proyecto de test listo (en este caso utilicé MSTest, es decir el que viene incluído en Visual Studio) lo que tenemos que hacer es crear el archivo .deployment para personalizar el build.

El archivo .deployment

En este archivo no hacemos más que indicar que el comando a ejecutar va a estar en un .bat (podemos usar powebshell también), de este modo

[config] 
command = deploy.cmd 

Luego, en el archivo "deploy.cmd" indicamos lo siguiente

REM restauramos los paquetes nuget
cd webapp1
nuget restore
REM Compilamos el proyecto web
"%MSBUILD_PATH%" "%DEPLOYMENT_SOURCE%\WebApp1\WebApp1\WebApp1.csproj"
REM Compilamos el proyecto de test
"%MSBUILD_PATH%" "%DEPLOYMENT_SOURCE%\WebApp1\WebApp1.Tests\WebApp1.Tests.csproj"
REM ejecutamos los test
vstest.console.exe "%DEPLOYMENT_SOURCE%\WebApp1\WebApp1.Tests\bin\Debug\WebApp1.Tests.dll"

Esto es muy sencillo, Kudu nos permite acceder a variables propias para acceder, por ejemplo, al directorio de MSBuild (%MSBUILD_PATH%) y del proyecto (%DEPLOYMENT_SOURCE%), después sólo indicamos la ubicación de los .csproj y listo.

El truco está en la línea final vstest.console.exe es el ejecutable incluído desde Visual Studio 2012 que nos permite correr los test desde la consola, entonces simplemente lo ejecutamos.

Viendo los resultados en Azure

image

Y si hacemos click en “View Log” podemos ver el resultado de los tests

image

Y por supuesto, hacemos fallar un test y esto es lo que ocurre

image

Falla, y el log nos indica que fue el test que modificamos

image

Mágico, nos leemos