单元测试-sonarqube本地安装使用

news2024/9/23 17:13:57

sonarqube

sonarqube是什么

SonarQube是一个开源的代码分析平台,用来持续分析和评测项目源代码的质量。通过SonarQube我们可以检测出项目中重复代码,潜在bug,代码规范,安全性漏洞等问题,并通过SonarQube web UI展示出来。

SonarQube的优点:

  • 自动化:SonarQube可以在不离开IDE的情况下对代码进行分析和评估。
  • 可定制性:SonarQube提供了大量的插件和规则来满足不同项目的需求。
  • 多语言支持:SonarQube支持多种编程语言,包括Java、C#、Python、JavaScript等。
  • 实时反馈:SonarQube可以在代码修改时实时地更新分析结果,帮助开发人员及时发现问题并修复。
  • 可视化:SonarQube提供了丰富的数据可视化功能,可以帮助开发人员更好地理解代码质量情况。

SonarQube的使用步骤:

  1. 安装SonarQube服务器和客户端。
  2. 在SonarQube服务器上创建项目并配置相关参数。
  3. 在项目中添加SonarQube插件或规则。
  4. 在IDE中集成SonarQube插件,启用代码分析功能。
  5. 运行代码分析任务,查看分析结果。
  6. 根据分析结果进行修复和优化。

接下来小编教大家如何安装使用sonarqube。

sonarqube本地安装使用配置

官网网址:https://www.sonarqube.org/

注意:sonarqube版本需要与jdk和数据库版本相对应,以及sonarqube对应电脑的位数

本案例中:JDK8、sonarqube7.6版本
在这里插入图片描述

在说明文档中可以查看sonarqube支持的jdk版本和数据库版本
在这里插入图片描述
在这里插入图片描述

1、下载sonarqube

官方网址: https://www.sonarqube.org/downloads/

2、解压到本地目录

在这里插入图片描述

3、修改sonarqube安装目录的conf目录下wrapper.conf

本案例路径(实际操作按照你真实的路径来):E:\sonarqube-7.6\sonarqube-7.6\conf

配置数据库以及sonarqube平台账号密码

sonar.jdbc.url=jdbc:mysql://localhost:3306/qjfsonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=gmsd
sonar.jdbc.password=gmsdtrade
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin

4、启动sonarqube程序

双击StartSonar.bat
在这里插入图片描述
程序如图,则说明启动成功
在这里插入图片描述

打开浏览器输入网址:localhost:9000

刚开始sonarqube上是没有数据的(下图已经有数据,仅做展示)
在这里插入图片描述

5、sonarqube在maven中的配置

打开并修改maven的配置文件settings

在这里插入图片描述

#在proxies中添加
	<profile>
		<id>sonar</id>
        <activation>
        <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
        <!-- Optional URL to server. Default value is http://localhost:9000 -->
        <sonar.host.url>http://localhost:9000</sonar.host.url>
        <sonar.jdbc.url>jdbc:mysql://localhost:3306/qjfsonar</sonar.jdbc.url>
    	<sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
      	<sonar.jdbc.username>sonar</sonar.jdbc.username>
		<sonar.jdbc.password>123456</sonar.jdbc.password>
        </properties>
	</profile>
  
  #在pluginGroups中添加
  <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>

6、将本地项目推送到sonarqube

使用maven指令:mvn sonar:sonar
在这里插入图片描述

出现以下页面则说明操作成功
在这里插入图片描述

随后即可在sonarqube上查看代码的全量覆盖率,新增覆盖率,重复率,代码异味等信息

在这里插入图片描述

书籍推荐

以下是一些单元测试推荐书籍及其推荐理由:

1.《单元测试的艺术》(The Art of Unit Testing)

作者:Steve Freeman

推荐理由:这本书是单元测试领域的经典之作,详细介绍了如何设计、编写和执行高质量的单元测试。书中涵盖了许多实用的技巧和工具,包括测试驱动开发、测试套件、测试覆盖率等,非常适合初学者和有经验的开发人员阅读。

2.《Python 单元测试实战》(Python Unit Testing in Action)

作者:Tim Peters

推荐理由:这本书介绍了如何使用Python编写高质量的单元测试,并提供了一些实用的技巧和工具。书中还包含了许多示例代码和案例,可以帮助读者更好地理解单元测试的概念和技术。

3.《Java 单元测试实战》(Java Unit Testing in Practice)

作者:Roger Sampson

推荐理由:这本书是Java单元测试领域的经典之作,详细介绍了如何使用JUnit框架编写高质量的单元测试。书中涵盖了许多实用的技巧和工具,包括测试驱动开发、测试套件、测试覆盖率等,非常适合Java开发人员阅读。

4.《C# 单元测试实战》(C# Unit Testing in Depth)

作者:Glenn Myers

推荐理由:这本书介绍了如何使用C#编写高质量的单元测试,并提供了一些实用的技巧和工具。书中还包含了许多示例代码和案例,可以帮助读者更好地理解单元测试的概念和技术。

总之,这些书籍都是单元测试领域的经典之作,涵盖了许多实用的技巧和工具,非常适合初学者和有经验的开发人员阅读。无论你是哪种编程语言的开发者,都可以从中受益匪浅。

希望对你有所帮助~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/689841.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ESC1+ESC4+CVE-2022–26923

CVE-2022–26923 创建机器账户并指定dnsHostName为dc的域名 certipy account create -u certhacktest.com -p Admin123456. -dc-ip 10.211.55.3 -user win -pass win123456 -dns DC.hacktest.com 用该机器账户向ADCS请求证书 certipy req -u win$hacktest.com -p win123456…

毕业设计之图书馆座位预约系统

1.系统开发环境 系统采用的集成开发环境为IDEA&#xff0c;使用JAVA语言及SPRINGBOOT框架进行开发&#xff0c;其中硬件环境和软件环境如下&#xff1a; 2.硬件环境 处理器&#xff1a;Intel(R) Core(TM) i7-9750 GPU 3.00GHz 内存&#xff1a;8GB 3.软件环境 操作系统&…

【无标题】实时系统Preempt RT与Xenomai之争!谁更主流,谁更实时?

选择争论一直存在 大家知道EtherCAT是实时现场总线技术&#xff0c;当我们开发一款支持EtherCAT总线的控制器时&#xff0c;实时操作系统的选择不仅对于产品本身是最重要的一部分&#xff0c;而且对产品研发的整个过程也影响深远。 根据EtherCAT主站提供商Acontis公司对全球新客…

【ssh】pycharm链接远程服务器出现:Bad owner or permissions on C:\\Users\\用户名/.ssh/config

一直以来是用的pycharm&#xff0c;最近改用了vscode登录&#xff0c;并配置了config文件实现了vscode自动连接远程服务器&#xff0c;但是回到pycharm发现terminal端口不管用了&#xff0c;电脑上的powershell也是链接不上远程服务器并报错Bad owner or permissions。 【解决…

算法06-搜索算法

算法0X-XX 总结大纲要求搜索算法-深度优先搜索例1:全排列放置扑克牌的案例n皇后案例 搜索算法-广度优先搜索 总结 本系列为C算法学习系列&#xff0c;会介绍 算法概念与描述&#xff0c;入门算法&#xff0c;基础算法&#xff0c;数值处理算法&#xff0c;排序算法&#xff0…

Vue3学习(四)服务器部署

注意后端SpringBoot需要提前安装Java1.8的环境和Mysql5.7的数据库 SpringBoot 打包后Jar包需要配置数据库 application.yml 文件 配置服务器数据库的IP和密码 ifconfig 查看内网IP&#xff0c;然后配置。 Vue配置 .env.prod VITE_ENV prod VITE_BASE_URL http://qing.vu…

线性回归与逻辑回归

文章目录 介绍1 实现简单示例函数1.1 提交解决方案 2 单变量线性回归2.1 绘制数据接下来需要实现数据可视化的代码&#xff0c;该部分数据绘制出的图像应与如下相同 2.2 梯度下降2.2.2 实现2.2.3 计算成本J(θ)2.2.4 梯度下降2.3 可视化成本函数 选做练习3 多变量线性回归3.1 特…

08-属性描述符Object.getOwnPropertyDescriptor(),原始数据不可重写

把原始数据作为属性值传入新对象中&#xff0c;发生原始数据修改丢失的问题怎么办&#xff1f; 应该使用Object.defineProperty()设置该属性用Object.defineProperty()设置的属性&#xff0c;默认writable、enumerable、configurable均为false并且自定义提醒该属性设置了不可重…

深度学习与机器学习区别

深度学习与机器学习区别 本文目录&#xff1a; 一、特征提取方面 1.1、机器学习 1.2、深度学习 1.3、机器学习特征提取 1.4、深度学习特征提取 1.5、深度学习特征提取例子 二、数据量和计算性能要求 三、算法代表 3.1、朴素贝叶斯算法 3.2、决策树 四、神经网络 一、…

pyspark报错 ‘DataFrame‘ object has no attribute ‘iteritems‘

修改pandas版本即可 我环境spark3.3.2 python3.9 numpy 1.25.0

AutoSAR系列讲解(入门篇)3.3-RTE对Ports的支撑(上)

目录 一、特征 1、扮演SWCs和BSW的交流途径 2、其他特征 二、S/R接口的不同方式 1、直接调用&#xff08;Direct&#xff09; 2、缓存调用&#xff08;Buffered&#xff09; 3、队列调用&#xff08;Queued&#xff09; 三、跨ECU的方式 一、特征 1、扮演SWCs和BSW的交…

数据分析入门-SARIMA模型案例分析(超详细)

由于代码中注释已经非常的清晰&#xff0c;文章中就不过多叙述了&#xff0c;直接上代码。 代码如下: # 在开始之前先导入所需要的包import warnings # do not disturbe mode warnings.filterwarnings(ignore)import numpy as np …

ChatGPT批量生成文章软件:创意无限,智能驱动文章

随着人工智能技术的不断发展&#xff0c;ChatGPT批量生成文章软件成为了当今互联网世界中备受瞩目的创新之一。作为一种基于大规模预训练语言模型的自然语言处理工具&#xff0c;ChatGPT能够以人类般的方式与用户进行对话&#xff0c;并且能够生成高质量的文章。这一技术的出现…

【LLMs系列】没钱玩GPT-4?来试试Mini-GPT4吧!

一、MiniGPT-4尝鲜 还在苦苦等待GPT-4开放&#xff1f;开源项目MiniGPT-4就能提前体验类似GPT-4的多模态对话功能。 2023年4月17日&#xff0c;多模态问答模型MiniGPT-4发布&#xff0c;实现了GPT-4里的宣传效果 《MiniGPT-4: Enhancing Vision-language Understanding with …

GDB常用调试方法及其底层原理

本文分为两个大模块&#xff0c;第一部分记录下本人常用到的GDB的调试方法和技巧&#xff0c;第二部分则尝试分析GDB调试的底层原理。 一、GDB调试 要让程序能被调试&#xff0c;首先得编译成debug版本&#xff0c;当然release版本的也能通过导入符号表来实现调试&#xff0c…

Centos7下tensorflow 2.12无法找到NVIDIA Tesla T4 GPU终极解决方法

目录 背景 系统信息 GPU信息 关键软件信息 问题现象 原因分析

解决element-ui消息提示$message重叠问题

在进行表单校验的时候&#xff0c;当触发两个提示消息的时候会出现上面的叠加情况&#xff0c;没有将提示消息分开显示&#xff0c;这样就给用户造成不好的视觉效果 我们的预期效果是达到上面的显示效果&#xff0c;就是在进行提示的时候&#xff0c;如果叠加就需分开显示&…

Centos8同步时间(阿里云NTP服务为例)

一、安装chrony sudo dnf install chrony二、使用 sed 命令一键完成配置 #pool 2.centos.pool.ntp.org iburst给这一行加注释 sudo sed -i s/^pool 2.centos.pool.ntp.org iburst/#&/ /etc/chrony.conf #添加3个阿里云NTP服务器 echo -e "server ntp1.aliyun.com ib…

withContext CoroutineScope协程切换,kotlin

withContext CoroutineScope协程切换&#xff0c;kotlin <dependency><groupId>org.jetbrains.kotlinx</groupId><artifactId>kotlinx-coroutines-core</artifactId><version>1.4.2</version></dependency> import kotlinx.co…

python 上传包到pypi

参考 https://www.jianshu.com/p/81fe5a5cd27a 1.打包 在pypi注册账号&#xff0c;并新建token 需要在用户下创建一个.pypirc文件。username__ token __ 是固定的&#xff0c;password 填入刚刚的token。 使用下面两个命令把dist中文件推送到pypi python setup.py sdist…