un exemple de SonarQube
📚 1. C'est quoi SonarQube ?
SonarQube est un outil qui :
-
Analyse ton code automatiquement
-
Détecte les bugs, vulnérabilités, mauvaises pratiques et problèmes de qualité
-
Donne un score de qualité à ton projet
-
Te propose des solutions pour corriger
➡️ Très utilisé en entreprise pour garantir un code propre avant de livrer.
🛠️ 2. Comment utiliser SonarQube sur un projet React simple ?
a) Installer SonarQube (localement)
-
Tu dois avoir Docker installé sur ta machine (très rapide à faire).
-
Lancer SonarQube avec Docker :
docker run -d --name sonarqube -p 9000:9000 sonarqube
-
Ça lance un serveur http://localhost:9000
-
Login par défaut :
admin
/admin
b) Configurer ton projet pour Sonar
Dans ton projet React (mon-projet-scratch
par exemple) :
-
Créer un fichier sonar-project.properties à la racine :
sonar.projectKey=mon-projet-scratch
sonar.projectName=Mon Projet Scratch React
sonar.sources=src
sonar.language=js
sonar.sourceEncoding=UTF-8
c) Installer le scanner Sonar (outil d'analyse)
Dans ton projet :
npm install -g sonar-scanner
d) Lancer l'analyse !
Dans le terminal :
sonar-scanner
➡️ Résultat :
-
SonarQube scanne tout ton dossier
src
-
Il envoie les résultats sur ton serveur SonarQube (
localhost:9000
) -
Tu vois le rapport de qualité complet : bugs, duplications, complexité cyclomatique, sécurité, etc.
🎯 Résultat visuel
Sur http://localhost:9000, tu verras un tableau de bord comme :
Critère | Ton score |
---|---|
Bugs | 0 |
Vulnerabilities | 1 |
Code Smells | 5 |
Coverage (tests) | 80% |
📌 Exemple rapide de problème que SonarQube détecte :
Dans ton App.jsx
, si tu écris :
var compteur = 0; // Mauvaise pratique : "var"
Sonar te dira :
"Use let or const instead of var" 🚨
➡️ Ça t'aide à corriger avant qu'un bug arrive en production.
🔥 Résumé Express
Action | Commande |
---|---|
Lancer SonarQube | docker run -d -p 9000:9000 sonarqube |
Ajouter config projet | fichier sonar-project.properties |
Installer scanner | npm install -g sonar-scanner |
Lancer analyse | sonar-scanner |
Voir rapport | http://localhost:9000 |
Aucun commentaire:
Enregistrer un commentaire