SonarQube - Instalación con Visual Studio

Hola a todo@s, en la siguiente entrada vengo a presentar una herramienta que nos va a ser muy útil para mantener código fuente más limpio y manejable si seguimos sus recomendaciones. La herramienta es SonarQube.

Con esta herramienta, se podrá detectar código duplicado, recomendaciones de gestión de código fuente, advertencias sobre posibles bugs, agregar informes de las pruebas unitarias y la cobertura de código y si el código para todas las recomendaciones, podréis incorporar a vuestro proyecto, el icono de la herramienta.

Es cierto que tanto Visual Studio, como otras herramientas como ReSharper, ofrecen ciertos consejos para mantener un código más limpio y manejable, pero SonarQube es gratuita y mantenida por una gran comunidad, y desarrollada para muchas otras plataformas de programación.

Con esta herramienta, no quiero decir que haya que olvidarnos de otros principios como el del SOLID u otros principios de arquitecturas en el desarrollo, sino que esta herramienta se va a complementar con nuestra forma de programar.

SonarQube, ofrece una gran variedad de análisis dependiendo del lenguaje de programación, y en este caso voy a instalarlo para usarlo con Visual Studio 2019 Enterprise. Se pueden usar otras versiones de Visual Studio, pero en otra entrada que quiero realizar, pretendido explicar cómo adjuntar las coberturas de código con SonarQube y solo está disponible en esta versión.

Los objetos que persigue la entrada son los siguientes:

  • Instalar SonarQube del lado del servidor
  • Instalar SonarQube del lado del cliente
  • Ejemplo de analizar el código fuente de un proyecto en Visual Studio

Instalar SonarQube del lado del servidor

La instalación de la herramienta se ha realizado en una máquina virtual de con Windows Server 2016, pero me imagino que la instalación se puede realizar sin ningún problema en otros sistemas operativos, siempre que cumpla los requisitos de SonarQube.

Para esta instalación se va a instalar la versión 8.3.1.34397 de SonarQube, disponible en su página web. Como prerrequisitos previos a la instalación se ha tenido que instalar la versión 11 de Java.

Los pasos para instalar SonarQube, con las siguientes:

  1. Descargar la herramienta la página oficial
  2. Descomprimir el fichero ZIP en la ubicación donde se quiere ubicar, para una mejor gestión de la herramienta.
  3. Configurar el fichero wrapper.config que está dentro de la carpeta conf donde se haya descomprimido la herramienta.

    Este paso solo es necesario, si no se dispone de la configuración a nivel de sistemas operativo de la ejecución de la máquina virtual de Java. Si es así, hay que comentar la línea 4, y des comentar la línea 3 del fichero y establecer la ruta física donde está el ejecutable de la máquina virtual de Java, en mi caso sería C:\Program Files\Java\jdk-11.0.7\bin\Java

  4. Una vez configurado la máquina virtual de Java en el sistema operativo, tan solo queda ejecutar el lado servidor del SonarQube. En mi caso al estar bajo un sistema Windows, se ha ejecutado el fichero StartSonar.bat ubicado en la carpeta ./bin/Windows-x86-64. Se recomienda la ejecución del programa, como administrador de la máquina.

  5. Al ejecutar el fichero se levanta una consola, en el que, si todo está correcto, nos indicará que SonarQube esta levantado.

  6. Para ver que eso es correcto, solo hay que acceder a la ruta http://localhost:9000 en el navegador y se accede al DashBoard del SonarQube.

Instalar SonarQube del lado del cliente

Con la herramienta de servidor ya funcionando, nos queda instalar la parte cliente, que es la encargada de analizar el código fuente de nuestros proyectos.

Como en el mundo de la informática, hay muchos tipos de lenguajes, la comunidad de SonarQube con la colaboración de las empresas que han creado los lenguajes de programación, ofrece muchas herramientas clientes para cada tipo de lenguaje de programación.

En mi carrera profesional, trabajo con las tecnologías de Microsoft, en la rama de C#, por lo que el cliente de SonarQube que se va a usar es el SonarScanner for MSBuild

Los pasos para la instalación son los siguientes:

  1. Desde la pagina oficial de SonarQube, descargar el programa cliente, según el tipo de proyectos que se quiera analizar, en este ejemplo se ha utilizado el cliente para NET. Framework 4.6+.

    He de informar que a mí no me quedo claro como obtener el lado cliente desde la página oficial, ya que el enlace de descarga lo confundía con un enlace a los Framework de Microsoft y no los cliquear, por los nombres poco descriptivos que habían dado a los enlaces. Pero ahí están los clientes de SonarQube.

    Enlace a la descarga del cliente de SonarQube

  2. Descomprimir el fichero descargado, en la ubicación deseada.
  3. Como la ejecución del análisis de código de SonarQube, se hace desde la ubicación del proyecto, se recomienda configura las carpetas de ejecución del cliente de SonarQube y de compilación del proyecto .Net, sin necesidad de indicar la ubicación de los ejecutables necesarios en el proceso de análisis del código fuente.

Con estos sencillos pasos, ya se puede empezar a analizar el código fuente de nuestros proyectos.

Ejemplo de analizar el código fuente de un proyecto en Visual Studio

Con la herramienta del lado del servidor arrancada y con las herramientas del lado clientes configuradas, los pasos para analizar un proyecto en Visual Studio, son los siguientes:

  1. Ubicarse en la carpeta del proyecto o de la solución, desde un CMD con un usuario administrador.
  2. Ejecutar las siguientes líneas de comando, para analizar el código fuente del proyecto.

    
        SonarScanner.MSBuild.exe begin /k:"[Key-Proyecto]" /n:"[Nombre-Proyecto]" /v:"[Versión]"
        MSBuild.exe /t:Rebuild
        SonarScanner.MSBuild.exe end    
                       

    La documentación de los parámetros de cada comando que se ejecutan de SonarQube se encuentra en su página oficial.

    En cuanto al comando MSBuild.exe, es el comando que se lanza para compilar el código fuente del proyecto, forzando a que lo recompile.

  3. Si todo ha ido bien, en el DashBoard del SonarQube, aparecerá el primer análisis del proyecto.

  4. En el detalle del análisis, se indica los diferentes problemas o recomendaciones detectados en el proyecto desde la comunidad de SonarQube.

    Hay que indicar que este código ha pasado los criterios SonarQube, pero aun así hay detectado ciertos pequeños comportamientos de código, que, aunque no son grabes, se recomienda corregir por si en un futuro pudieran provocar errores más grandes, bajada de rendimiento o una complejidad a la hora de mantenimiento o evolución del código fuente.

    Por suerte, SonarQube, nos informa de porque del error o aviso, que incluso nos indica como hay que proceder.

    Errores de componentes no utilizados

    Errores de la complejidad de la funcionalidad de una función

  5. Solventado los errores y los avisos proporcionados por SonarQube, se vuelve a ejecutar el analizador del código fuente del proyecto.

    En este caso, al solventar los avisos y recomendaciones que los indicaba SonarQube, la herramienta, indica que nuestro código no pasa los criterios de SonarQube. Esto es debido a requiere de la cobertura de código de nuestro proyecto, a través de las pruebas unitarias.

En la siguiente entrada en el Blog, os quiero mostrar como agregar la cobertura de código al análisis de SonarQube, para que el proyecto pase los criterios de calidad del proyecto.

Entradas populares de este blog

Cargar archivos desde PowerApps a bibliotecas de SharePoint

Dataverse vs. SharePoint Online: ¿Cuál es el repositorio adecuado para ti?

La librería