白盒测试实训

1. 设置 SonarQube 服务器

确保你的 SonarQube 服务器已经启动并运行。你可以使用 Docker 来启动 SonarQube 服务器:

docker run -d --name sonarqube -p 9000:9000 sonarqube

访问 http://localhost:9000 并登录(默认用户名和密码都是 admin)。配置你的项目和生成一个 SonarQube 令牌。

公共地址:

https://sonarqube.hogwarts.ceshiren.com/projects

准备代码扫描工具

下载 SonarScanner CLI,这个工具用于分析项目并将结果发送到 SonarQube。你也可以使用 Docker 来运行 SonarScanner。

项目实例

https://github.com/SonarSource/sonar-scanning-examples.git

4. 编写 sonar-project.properties 文件

在你的项目根目录下创建一个 sonar-project.properties 文件,包含以下内容:

sonar.projectKey=your_project_key
sonar.host.url=http://localhost:9000
sonar.login=your_sonar_token

# 可选配置
sonar.projectName=Your Project Name
sonar.projectVersion=1.0
sonar.sources=src

5. 使用 Docker 运行 SonarScanner

以下是一个使用 Docker 执行 SonarScanner 的示例命令:

docker run --rm \
  -e SONAR_HOST_URL="http://host.docker.internal:9000" \
  -e SONAR_LOGIN="your_sonar_token" \
  -v "$(pwd)":/usr/src \
  sonarsource/sonar-scanner-cli

6. 查看扫描结果

完成扫描后,你可以登录 SonarQube 服务器查看项目的扫描结果和详细报告。

完整示例

假设你有一个项目目录结构如下:

my-project/
├── sonar-project.properties
└── src/
    └── main.py

sonar-project.properties 文件中,你可以配置项目和 SonarQube 服务器的信息。

然后在项目根目录下运行以下命令:

docker run --rm \
  -e SONAR_HOST_URL="http://localhost:9000" \
  -e SONAR_LOGIN="your_sonar_token" \
  -v "$(pwd)":/usr/src \
  sonarsource/sonar-scanner-cli

这将会启动 SonarScanner 并分析你的代码,然后将结果上传到 SonarQube 服务器。你可以在 SonarQube 仪表板中查看结果。

mvn sonar

mvn clean test org.sonarsource.scanner.maven:sonar-maven-plugin:LATEST:sonar -Dsonar.host.url=https://sonarqube.hogwarts.ceshiren.com/