Análisis de código C# con SonarQube

Para ejecutar análisis de código C# en proyectos .NET Core, se utiliza el escáner de SonarQube para MSBuild, que integra las herramientas de compialción con el servidor de calidad. A continuación se describe el proceso paso a paso.

Instalación del escáner global

El primer paso es instalar la herramienta dotnet-sonarscanner como un comando global de .NET:

dotnet tool install --global dotnet-sonarscanner

Configuración de conexión al servidor SonarQube

Una vez instalado, se debe modificar el archivo SonarQube.Analysis.xml que se encuentra en el directorio de instalación de la herramienta. Este archivo define los parámetros de conexión al servidor. A continucaión se muestra un ejemplo de configuración mínima:

<?xml version="1.0" encoding="utf-8"?>
<SonarQubeAnalysisProperties
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns="http://www.sonarsource.com/msbuild/integration/2015/1">
  <Property Name="sonar.host.url">http://localhost:9000</Property>
  <!-- Opcional: autenticación si es necesaria
  <Property Name="sonar.login">usuario</Property>
  <Property Name="sonar.password">contraseña</Property>
  -->
</SonarQubeAnalysisProperties>

Reemplace la URL por la dirección real de su instancia de SonarQube.

Preparación del proyecto C#

El análisis se realiza sobre un proyecto o solución de C#. Por ejemplo, una estructura típica de proyecto podría ser:

test/
├── CMApi
│   ├── CMApi.sln
│   ├── CMApiCore
│   ├── API
│   └── ...
└── mldb_et_metadatacustom_insert_20200628.sql

Ejecución del análisis

El proceso consta de tres fases: inicio, compilación y fin.

  • Inicio: Se genera un proyecto en SonarQube y se prepara el entorno.
  • Compilación: Se ejecuta dotnet build sobre la solución o proyecto.
  • Fin: Se envían los resultados al servidor.

Ejemplo de comandos:

# Fase 1: Inicio
dotnet-sonarscanner begin /k:mi-proyecto /n:"Mi Proyecto" /v:1.0

# Fase 2: Compilación
dotnet build CMApi/CMApi.sln

# Fase 3: Fin
dotnet-sonarscanner end

Los parámetros /k, /n y /v definen la clave única, el nombre y la versión del proyecto en SonarQube.

Visualización de resultados

Una vez finalizado, se puede acceder al panel de control a través del navegador, usando la URL del servidor e identificador del proyecto. Un mensaje similar al siguiente indica que el análisis se ha subido correctamente:

INFO: ANALYSIS SUCCESSFUL, you can browse http://localhost:9000/dashboard?id=mi-proyecto
INFO: EXECUTION SUCCESS
Total time: 34.050s

La página mostrará métricas de calidad, bugs, code smells y deuda técnica del código fuente analizado.

Etiquetas: sonarqube CSharp analisis-estatico dotnet-sonarscanner MSBuild

Publicado el 7-10 04:48