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 buildsobre 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.