使用 Go 和 SonarQube 进行静态 Golang 代码分析

发布日期:2026-07-03 21:22:04   来源 : 杭州电子商务研究院    浏览量 :4
杭州电子商务研究院 发布日期:2026-07-03 21:22:04  
4

介绍

编写代码时,无论是应用代码还是自动化代码,有一点是不变的:代码必须遵循最佳实践并根据最佳实践进行测试。否则,生产级代码可能会出现语法和安全问题。

本指南将介绍如何使用流行且免费的静态代码分析工具 SonarQube 测试 Golang 代码。

先决条件

要遵循本指南,您应该具备:

  • 安装在 Windows 10 或 MacOS 上的 Docker 桌面
  • Golang 版本 1.15 或更高版本。虽然此版本可能不是必需的,但这是本指南中使用的版本。
  • 文本编辑器或 IDE。本指南将使用 Visual Studio Code (VS Code),您可以在此处找到。

创建 SonarQube Docker 容器

在开始静态代码分析之前,您需要启动并运行 SonarQube 环境。从开发环境的角度来看,最好的方法是通过本地主机上的 Docker 来实现。

要创建并运行 Docker 容器,请打开终端并使用以下命令。

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

接下来,登录 Docker 容器。打开 Web 浏览器并转到以下链接。

      http://localhost:90000
    

您应该看到 SonarQube 网络门户已启动并运行,如下面的屏幕截图所示。

登录SonarQube

要登录 SonarQube,默认用户名和密码是admin

安装 SonarScanner

SonarScanner 是用于运行 SonarQube 测试的命令行工具。测试会将结果发送到 SonarQube 服务器,以便您查看。

要安装 SonarScanner,请打开 Web 浏览器并转到以下 URL。

      https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
    

选择您正在运行的操作系统并下载 SonarScanner。

将下载的文件保存到下一节中可以使用的位置,以便将 SonarScanner 添加到操作系统环境 $PATH。例如,您可以将其保存到桌面或文档文件夹。该位置必须是不会被删除的地方,因为 SonarScanner 将用于运行测试。

将 SonarScanner 添加到 $PATH

无论您使用的是 Windows 还是 MacOS,如果您不想不断地cd到 SonarScanner 路径来使用它,则需要将 SonarScanner 添加到环境 $PATH 中。

将以下目录添加到 $PATH。

      location_of_download\sonar-scanner-version-operatingsystem\bin
    

您会在bin目录中找到该程序,这就是 $PATH 需要指向的位置,以便您可以从终端运行sonar-scanner 。

测试代码

当您测试 Golang 中的任何代码(包括使用静态代码分析)时,您必须确保进行适当的 Golang 测试。适当的 Golang 测试的关键属性是:

  • 测试以_test.go结尾命名。例如,azure_auth_test.go
  • 在 Golang 中设置的用于运行测试的函数以 Test 开头例如,func TestAzureAuth(t *testing.T) {}

本示例中您将用来测试的代码是一个非常精简的示例。它并不是一个硬核的 Golang 测试,而是为了展示在 SonarQube 中进行测试的工作流程。

      package Test

import (
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestDemo(t *testing.T) {
	one := "one"
	two := "one"

	assert.Equal(t, one, two, "the two variables should be the same value")
}
    

在桌面上创建一个名为Test 的目录,并将代码保存为目录中的my_test.go。虽然桌面位置不是强制性的,但本指南将遵循这一点。

创建新的SonarQube项目

当您想在本地或某种管道中运行静态代码分析测试时,您需要一个存放静态代码分析报告的场所。这就是项目发挥作用的地方。当您运行测试时,输出和结果将发送到 SonarQube 中的项目。

要创建新项目,请打开 Web 浏览器并转到 SonarQube 仪表板。

接下来,单击“项目”

单击创建新项目按钮。

为了遵循此示例,请将您的项目命名为“Gotest”。命名后,单击“设置”按钮。

接下来,您需要生成一个令牌。该令牌允许您在运行 SonarQube 测试时从本地主机进行身份验证。将令牌命名为“Gotest”,然后单击“生成”按钮。

单击“继续”按钮并进入下一部分运行测试。

运行并检查测试

现在项目已经创建,是时候开始运行测试了。

在步骤 2 下,选择其他选项来运行 Golang 测试。

选择您正在运行的操作系统。

运行测试

复制sonar-scanner命令行以开始运行测试。命令行指定来自 SonarQube 的项目、主机 URL 和生成的令牌。

现在,转到命令行并进入从“要测试的代码”部分保存测试的目录

进入测试所在的目录后,运行复制的sonar-scanner命令行。您应该会看到类似于下面的屏幕截图,表明执行成功。

检查测试

恭喜!您已成功在 Golang 上运行 SonarQube 测试

结论

当您决定编写任何代码时,代码质量对您和使用它的每个人都至关重要。谈到代码质量,您需要知道您编写的代码是否已准备好向世界发布。通过静态代码分析,您可以满意地知道您运行的代码已正确配置。

以上内容来自杭州电子商务研究院推送
关注
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 关注 数据