- 发布
- 苏州华克斯信息科技有限公司
- 电话
- 0512-62382981
- 手机
- 13862561363
- 发布时间
- 2022-12-05 16:28:20
SonarQube和JaCoCo的个人测试代码覆盖率
围绕JaCoCo听众人工制品的一个警告。虽然在文档中不清楚,但是当JaCoCo侦听器版本与SonarQube中安装的Java插件的版本匹配时,似乎获得了jia效果。在这种情况下,由于我们在SonarQube中安装的Java插件是2.3版,我们使用了listener artefact 2.3版本。我们还用监ting器1.2测试了同样好的结果,但为了防止任何未来的冲突,我们建议保持版本一致。
运行分析
一旦完成了项目配置的更改,您只需要重新执行SonarQube分析即可查看新的报告。
根据您安装的SonarQube Java版本,配置有所不同。
在旧版本中运行分析
当使用的Java插件版本是2.1或更早的版本时,应该在分析执行时才能启用该配置文件,并且只有当分析执行时。这意味着现在需要发射声纳:声纳目标作为单独的Maven构建(建议这样做,但在许多情况下,您可以在一次运行中执行所有目标)。在我们的宠物诊suo版本的情况下:
gt; mvn清洁验证-P货 - tomcat,硒测试,jmeter测试
gt; mvn sonar:声纳-P覆盖率测试
如果您的构建是由Jenkins工作触发的,那么新的配置文件应该添加到后期制作操作中,如此屏幕截图中所示:
SonarSource
通过上述命令成功分析项目将导致以下输出到控制台或日志文件:
SonarQube Runner 2.3
Java 1.7.0_25 Oracle Corporation(64位)
Mac OS X 10.8.5 x86_64
INFO:Runner配置文件:/opt/sonar-runner-2.3/conf/sonar-runner.properties
信息:项目配置文件:/Users/manisarkar/bn_projects/TimelineJS/sonar-project.properties
INFO:默认语言环境:“en_US”,源代码编码:“UTF-8”
信息:工作目录:/Users/manisarkar/bn_projects/TimelineJS/.sonar
信息:SonarQube服务器3.7
14:11:20.927 INFO - 加载批量设置
。
。
。
14:11:38.290 INFO - ANALYSIS SUCCESSFUL,你可以浏览http:// localhost:9000 / dashboard / index / TimelineJS
14:11:38.292 INFO - 执行工作后类org.sonar.issuesreport.ReportJob
14:11:38.293 INFO - 执行岗位职责类org.sonar.plugins.core.issue.notification.SendIssueNotificatiPo的sdtJob
14:11:38.314 INFO - 执行工作后类org.sonar.plugins.core.batch.IndexProjectPo的stJob
14:11:38.356 INFO - 执行工作后类org.sonar.plugins.dbcleaner.ProjectPurgePo的stJob
14:11:38.365 INFO - - >在和之间每天保留一张快照
14:11:38.365 INFO - - >在和之间每周保留一个快照
14:11:38.365 INFO - - >在和之间每月保留一个快照
14:11:38.365 INFO - - >删除之前的数据:
14:11:38.368 INFO - - > Clean TimelineJS [id = 151]
14:11:38.372信息 - 信息:----------------------------------------- -------------------------------
信息:执行成功
信息:------------------------------------------------ ------------------------
总时间:19.099s
终内存:14M / 502M
信息:------------------------------------------------ ------------------------
以下是几个链接,以示例sonar-project.properties文件来帮助创建新的,中国sonarqube开源代码质量管理软件,即非Maven Java项目的Sonar设置[05]和SonarQube Runner [06]分析。
注意:SonarQube Runner希望SonarQube在指ding端口上运行,否则会抛出错误,例如ERROR:Sonar server http:// localhost:9000无法访问。这当然可以通过配置文件进行更改(参见上一篇文章[01])。
SonarQube组件
一旦构建完成并成功,可以在仪表板中找到新的或更新的项目。钻入项目将带来一个屏幕,载入重要指标和分析项目的各个方面:
(以上是示例应用程序的屏幕截图)
令人感兴趣的主要重要组成部分是质量指标,复杂因素,复杂性(左下),测试覆盖率指标(单位测试覆盖率和单位测试成功率)。可能安全违规。 Package Tangle Index and Dependencies to cut,绝dui是方便的,以保持清洁的包和松散耦合的依赖关系。同样的说法,LCOM4(方法中缺少凝聚力 - 降值越好),复杂性也揭示了你的类,方法和功能的松散耦合 - 它也是在文件级别和整体级别给出全图。所有这些组件都是软件质量的良好指标,至少如果不是软件工艺 - 底层代码写在质量上有多好?或者它可以被看作是 - 仍然是充足的改进和重构的房间。
热点视图现在进一步分析了分析的其他一些重要方面,并突出显示需要更多关注的领域或者一个更多的问题在其顶点附近 - 要么超越da允许限制,要么需要更多的抛光才能满足要求。
(以上是在nemo.sonar网站上发布的JDK7的截图)
我非常喜欢下面的设计组件,它可以很好地分解包装依赖关系并强调依赖循环。它是中大型项目中更复杂的事情之一,通常可能会阻碍模块化。
如何使用 SonarQube 改进工作流
twitter作为开发人员, 我不得不多次修复生产环境中的问题。有时, 我在代码之前没有看到任何错误, 而在其他时间, 我花了很多时间试图理解别人写的代码-更糟的是, 我把代码放到生产中, 在几个月后发现了安全漏洞。
很可能你也面对过这种情况。因此, 有一个工具, 可以帮助您在早期阶段检测到它们, 岂不是很棒吗?SonarQube 使这成为可能。在这篇文章中, 您将了解它如何帮助您清理代码并防止将来出现问题。
SonarQube 入门SonarQube 是一个开放源码的质量管理平台, 致力于不断分析和测量技术质量, 从早的计划阶段到生产。通过将静态和动态分析工具结合在一起,代理商sonarqube开源代码质量管理软件, SonarQube 连续监视七轴上的代码, 如重复代码、编码标准、单元测试、复杂代码、潜在 bug、注释和设计以及体系结构。
SonarQube 是一种用于主要编程语言的代码分析器, 如 c/c 、Javascript、Java、c#、PHP 或 Python,代理商sonarqube开源代码质量管理软件, 等等。通常,sonarqube开源代码质量管理软件, 应用程序同时使用多种编程语言, 例如: Java、Javascript 和 HTML 的组合。SonarQube 自动检测这些语言并调用相应的分析器。
SonarQube 现在是 Bitnami 目录的一部分。您可以或推出它与我们准备使用的云图像只需几次点击和开始使用它在您的所有项目。利用 Bitnami 图像的特点: 安全、xin、优化、一致等。
玩 SonarQube在这个 GitHub 的项目中, 您将找到一个用 Javascript 编写的代码示例。目标: 向您展示如何将 SonarQube 合并到您的开发工作流中。存储库包含两个主文件夹 (源和测试), 这样, 您就可以知道测试所涵盖的代码的百分比。
这个项目还包括一个声纳工程. 属性文件, 其中有一些配置参数需要配置 SonarQube, 如用户名, 密码, 语言等。
运行
$ 声纳-扫描仪在项目文件夹内, 这样就启动了第yi个扫描仪, 您可以在 web 界面中检查结果。
第yi次扫描
正如您在上面的截图中所看到的, 当前的代码有零 bug、零漏洞和六代码的气味。
我将修改源代码以引入一个 bug 和一个漏洞。这一次是有意的, 但是在日常的工作中, 这样的问题会在你没有意识到的情况下出现。
添加错误
再次运行扫描仪使用
$ 声纳-扫描仪如预期的那样, 将出现新的 bug 和漏洞。再次检查分析以查看所做的更改:
比较扫描
屏幕右侧将出现一个新节 (以黄色高亮显示)。SonarQube 处理两种状态: 当前状态 (以白色表示) 和xin更改。正如您在截图中所看到的, 上次扫描中引入的更改增加了一个 bug 和一个漏洞。SonarQube 评估每个部分的质量, 评分基于不同的参数, 一个是jia状态。在这种情况下, 引入 bug 导致 "bug" 部分从 a 传递到 C, "漏洞" 部分从 a 到 B。
您可以设置 "泄漏期间" 来确定要进行比较的方式: 按时间或在每个扫描仪执行之间。
让我们详细地看看 "覆盖率" 一节: 38.1% 是测试覆盖率 (正如您在 GitHub 存储库中看到的那样, 我对某些文件进行了测试, 但对于所有的文档都没有)。在黄色部分, 您可以看到新添加的行的覆盖率。以前, 为了添加错误, 我引入了一些新行, 但我没有为这些新行创建任何测试, 因此新的测试覆盖率为0%。此外, 点击覆盖范围, 我可以看到更多的信息的覆盖面, 例如: 覆盖的文件, 覆盖线的数量, 等等。
错误信息
通过这种快速而简单的分析 (您只需执行一个命令), 您将能够防止出现在生产环境中的错误, 使代码保持安全并遵守jia做法和质量标准。在下面的迭代中, 我将致力于实现零 bug、漏洞和代码气味的目标。我还可以在测试中得到**** 的代码。一旦我的代码处于这种状态, 就很容易看出所做的更改是否引入了某种错误或坏的做法。
如何挤压 SonarQube正如您在上一节中看到的, 保持代码的良好状态非常简单。但是, 还有更多的发现。SonarQube 有很多很酷的集成。
分析方法可以在下列分析方法之间进行选择:
用于 MSBuild 的 SonarQube 扫描仪:. Net 项目的启动分析SonarQube 扫描器: maven 的启动分析和xiao配置SonarQube 扫描器 Gradle: 发射 Gradle 分析蚂蚁 SonarQube 扫描器: 蚂蚁发射分析詹金斯 SonarQube 扫描仪: 詹金斯发射分析SonarQube 扫描仪: 当其他分析器都不合适时, 从命令行启动分析插件另外, SonarQube 有一个更新中心与各种各样的插件组织入不同的类别, 一些有用的插件是:
代码分析器
SonarCFamily c/c SonarPHPSonarJSSonarWebSonarJavacss集成
GitHub 插件: 分析拉请求, 并指出问题作为评论。谷歌分析: 将 google 分析跟踪脚本添加到 SonarQube 的 web 应用程序中。单片机引擎
善变的: 增加对善变的支持。git: 添加对 git 的支持。SVN: 添加对 Subversion 的支持。身份验证和授权
GitHub 身份验证: 通过 GitHub 启用用户身份验证和单一登录。GitLab 身份验证: 通过 GitLab 启用用户身份验证和单一登录。谷歌认证: 启用用户身份验证授权到谷歌。读过这篇文章后, 你可能想尝试 SonarQube, 看看它是如何融入你的日常工作的。您可以直接从 Bitnami 目录或启动它。
快乐 (和安全) 编码!