Bei der Arbeit an größeren Projekten ist es immer eine bewährte Methode, eine statische Code Analyse durchzuführen, um den Code besser und sicherer strukturieren zu können. SonarQube ist hier ein bekanntes Open-Source Tool, das für die kontinuierliche Überprüfung des Codes verwendet werden kann.
SonarQube stellt die folgenden Punkte in Form von Analyseberichten zur Verfügung:
- Statische Codeanalyse inklusive Fehlerberichten
- Code Smells
- Code Duplizierungen
- Vulnerability Scanner
In diesem Artikel zeige ich, wie man mit SonarQube starten kann – dafür habe ich diese Tools verwendet:
Voraussetzungen:
- Visual Studio 2019
- Java JDK 11.0.12
- Sonarqube 9.0.1
- VS Extension: Run Coverlet Report 1.12.0
- SonarScanner
Beispiel
1. Installation von SonarQube
Für das Beispielporjekt habe ich die gratis Community Version verwendet. Diese kann auf der SonarQube Website geladen werden und für die lokale Entwicklung verwendet werden.
Es wird eine Zip Datei geladen – diese muss mittels Kontextmenü, rechte Maustaste, auf Unblock gesetzt werden, da die Datei möglicherweise auf dem System geblockt ist.
Anschließend die Zip Datei z.B. nach C:\SonarQube\sonarqube-9.0.1.46107 extrahieren.
2. Installation JDK
Im nächsten Schritt muss die Java JDK installiert werden. Falls bereits eine Java Installation vorhanden ist, kann die Version in CMD mit dem folgenden Command geprüft werden:
java -version
Falls noch keine Java Installation erfolgt ist, oder es später zu einer Fehlermeldung in Bezug auf die Java JDK Versionsnummer kommt – muss Java erst auf dem System installiert werden. Dafür – für dieses Beispiel – den Installer von der Java Version 11 von der Oracle Website beziehen, oder alternativ die OpenJdk verwenden.
3. Java Pfad in SonarQube setzen
In das SonarQube Installationsverzeichnis wechseln und die Wrapper.config Datei öffnen – z.B. C:\SonarQube\sonarqube-9.0.1.46107\conf\wrapper.conf
In der Datei den wrapper.java.command Pfad auf die installierte Java Jdk setzen:

4. Installation Run Coverlet Report Extension
Visual Studio starten und unter Extensions – Manage Extensions – die Run Coverlet Report Extension installieren
5. Installation SonarScanner
Starten der CMD und folgenden Command eingeben:
dotnet tool install --global dotnet-sonarscanner
6. Ein Beispielprojekt mit UnitTests in Visual Studio erstellen
Für das Beispiel habe ich eine einfache CalculatorApp mit einem XUnitTest Projekt erstellt:

Es ist an der Zeit, SonarQube mittels CMD zu starten. Dafür in der CMD die StartSonar.bat ausführen. Diese Datei befindet sich im bin Verzeichnis im SonarQube Installtionsverzeichnis z.B: C:\SonarQube\sonarqube-9.0.1.46107\bin\windows-x86-64\StartSonar.bat
StartSonar.bat
8. Projekt scannen
In das .NET Projektverzeichnis navigieren und die folgenden Commands in der CMD verwenden:
dotnet sonarscanner begin /k:"CalculatorApp_Scan" /d:sonar.login="admin" /d:sonar.password="admin"
dotnet build
dotnet test --collect:"XPlat Code Coverage"
dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=opencover
dotnet sonarscanner end /d:sonar.login="admin" /d:sonar.password="admin"
SonarQube hat nun das Projekt gescannt, alle relevanten Informationen gesammelt und erstellt nun den Code Analysis Report.
9. Berichte prüfen
In einem nächsten Schritt können die Berichte im Browser über die SonarQube Url http://localhost:9000/ geprüft werden.
Als Fazit kann gesagt werden, SonarQube ist ein sehr gutes Open-Source Tool zur statischen Codeanalyse, das lokal in der Entwicklung, aber auch im Deploymentprozess z.B. in der Azure DevOps Pipeline, verwendet werden kann.