首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

敏捷过程中如何保证代码质量

PMD: 注重检查源文件中的潜在问题,可以检查Java代码中是否有未使用的变量、私有方法,是否有空的try/catch、是否过于复杂的表达式等等。...看看SonarQube的有哪些组件。 ?...指标:SonarQube中的主要指标有可靠性,安全性,可维护性,测试覆盖率,复杂度,重复代码,规模(大小),问题等。...SonarQube Server处理分析报告时,根据质量配置中的代码规则进行匹配,从而生成具体的指标数据,然后根据质量阈中的阈值判断出项目的代码是否合格。...报告比较简单,点击链接可以直接在SonarQube中查看详细报告 ? 单独执行代码分析的报告 ? 除此之外,我们还能在DevOps平台中看到一些报表。 单元测试覆盖率报表 ? 可维护性报表 ?

1.9K61
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    量化你团队的代码质量

    准备工具 clang-tidy、infer 用于静态代码检查 lcov 用于统计单元测试代码覆盖率 gcovr 用于生成覆盖率报告及转为 SonarQube 支持的报告格式 sonar-scanner...用于传送以上工具的报告结果到 SonarQube 平台(平台搭建请参考官方文档) pre-commit 可选,用于提交时本地执行静态代码检查 这些工具在 macOS 中均可通过 brew 来进行安装,比较特殊的是...lcov 与基础报告对比生成结果 这个步骤比较繁琐,我们找到了一个开源的 CMake 插件 CodeCoverage.cmake,有了这个插件,您只需要在您的工程中添加几行 CMake 代码即可实现覆盖率统计能力...CI 集成 GitLab 测试报告集成 GitLab 和 SonarQube 都支持展示测试覆盖率统计结果,GitLab 还可以把测试的所有子项内容展示在 Pipeline 结果页中: 图片 GitLab...通过次方式上传报告后,在 SonarQube 平台就可以展示测试覆盖率百分比的情况了: 图片 SonarQube 平台支持设置统一的质量阈,当你的代码发现 Major 级别以上的错误又或者覆盖率达不到一定百分比

    1K30

    .net持续集成sonarqube篇之 sonarqube集成单元测试

    通过前面章节我们可以看到,不论怎么构建,单元测试覆盖率一栏总是0% ? 这是因为单元测试覆盖率报告需要额外集成.这一节我们就讲解如何在sonarqube里集成单元测试覆盖率报告....我在本地有一个包含单元测试项目(大家可以自己建一个包含单元测试的项目,关于单元测试前面章节也有详细讲解,这里不再赘述).进入包含项目sln或者csproj的文件,执行以下命令....end Begin 和end是固定格式,这里begin部分多了一个/d选项,/d为dynamic properties 动态属性.通过动态属性指定单元测试报告的位置....第三段 这里是生成单元测试覆盖率报告的关键. 首先指定Opencover所在位置,-register user 为注册当前windows用户以使其有权限执行....通过这个界面,我们可以看到每一个类的的单元测试覆盖率和未覆盖的行数.我们点击类名,便可以进入具体的类. ? 这个图中,蓝杠部分为单元测试覆盖到的代码,红框部分则为未覆盖到的代码. 代码大视窗显示.

    1.4K20

    Sonar Scanner 之 C++扫码篇

    本文将解决上一篇中的一个问题 1)为什么C++项目扫出来缺陷、安全漏洞都是0?覆盖率也是0%? C++代码扫描方案 本文主要内容如下: ?...覆盖率检测这项工作除了简单的代码插桩--用例执行--结果获取这几步之外,实际的工程中还存在更为复杂的场景,如收集分布式系统或者是多环境并行执行测试的结果,这需要对多个执行结果进行合并。...这就比较奇怪了,笔者后来通过仔细研读说明文档,原来这个Sonar C++ plugin只是完成了报告的读取,并没有任何代码分析的功能。任何的结果,都依赖于工具链中前述工具所生成的报告。...笔者以为在sonar-cxx插件安装并执行sonar-scanner之后,自然就有代码静态扫描结果了。然而SonarQube上的数据一直是0个BUG,0个违规。...【未完待续】 1)如果一个项目中包含C++/C#/PLSQL多种语言,如何实施SonarQube扫描?需要扫几次,是几个项目?

    7.9K50

    SonarQube测试覆盖率--Java

    测试覆盖率报告和测试执行报告是评估代码质量的重要指标。测试覆盖率报告告诉您测试用例涵盖的代码百分比。测试执行报告告诉您已运行哪些测试及其结果。 SonarQube本身不计算覆盖范围。...要在分析中包含覆盖率结果,您必须设置第三方覆盖率工具并将 SonarQube 配置为导入该工具生成的结果。...一般准则 在导入测试覆盖率之前,您需要配置适当的 SonarScanner,以便在构建管道中执行代码分析。 要启用覆盖率报告,您必须执行以下操作: 将覆盖率工具设置为作为生成管道的一部分运行。...您的覆盖率工具应设置为在SonarScanner分析之前运行。 配置覆盖范围工具,使输出报告文件的位置和格式与 SonarScanner 的预期相匹配。...jacoco-maven-plugin 如果要将所有特定于模块的报告聚合到一个项目级报告中,最简单的解决方案是创建一个特殊的Maven模块(以及您已有的模块),该模块除了使用该目标的模块外,什么都不包含

    2.7K31

    使用了这个神器,让我的代码bug少了一半

    最近一段时间,我们团队在生产环境出现了几次线上问题,有部分比较严重,直接影响用户功能的使用,惹得领导不高兴了,让我想办法提升代码质量,这时候项目工程代码质量检测神器——SonarQube,出现在我们的视线当中...1.4 重复 显然程序中包含大量复制粘贴的代码是质量低下的,sonarqube可以展示源码中重复严重的地方。...SonarQube实例包含三个组件: ? SonarQube服务器运行以下过程: 提供SonarQube用户界面的Web服务器。 基于Elasticsearch的搜索服务器。...计算引擎负责处理代码分析报告并将其保存在SonarQube数据库中。 该数据库存储以下内容: 代码扫描期间生成的代码质量和安全性的度量标准和问题。 SonarQube实例配置。...然后在sonar后台查看检测报告 ? 报告里面包含:bug、漏洞、异味、安全热点、覆盖、重复率等,对有问题的代码能够快速定位。 点击某个bug可以查看具体有问题代码: 没有关闭输入流问题: ?

    2.1K40

    使用了这个神器,让我的代码bug少了一半

    最近一段时间,我们团队在生产环境出现了几次线上问题,有部分比较严重,直接影响用户功能的使用,惹得领导不高兴了,让我想办法提升代码质量,这时候项目工程代码质量检测神器——SonarQube,出现在我们的视线当中...1.4 重复 显然程序中包含大量复制粘贴的代码是质量低下的,sonarqube可以展示源码中重复严重的地方。...SonarQube实例包含三个组件: SonarQube服务器运行以下过程: 提供SonarQube用户界面的Web服务器。 基于Elasticsearch的搜索服务器。...计算引擎负责处理代码分析报告并将其保存在SonarQube数据库中。 该数据库存储以下内容: 代码扫描期间生成的代码质量和安全性的度量标准和问题。 SonarQube实例配置。...: mvn clean complie -U -Dmaven.test.skip=true sonar:sonar 看到这几句话,就表示检测成功了 然后在sonar后台查看检测报告 报告里面包含:bug

    1.2K10

    Sonar Scanner系列之架构与Java篇

    因此,由于扫描器的不同,一个包含了C#、C++和PLSQL的项目,很不幸需要被三个扫描器各自扫描一次,同时生成三个SonarQube project来呈现扫描结果。...配套的,我们通过SonarQube官方提供的SonarQube Scanner for Maven这个插件来进行代码的扫描,如果还要得到单元测试和代码覆盖率报告,那么还需要使用Maven Surefire...1、指定SonarQube服务器地址和口令 整个方案的基础是,让Maven中的Sonar Scanner插件能知道SonarQube服务器和登录口令。...Token产生,可以参见SonarQube使用说明。需要注意的是,这个token的生成是被设计为“阅后即焚”的。...4)为什么C++项目扫出来缺陷、安全漏洞都是0?覆盖率也是0%?

    4.9K30

    利用Jenkins pipeline配置测试工具

    现在把我的学习结果汇集成此文,并且详细介绍我在学习过程中遇到的坑,希望对大家有所帮助。...图9 JUnit构建结果 2.3 Jacoco JaCoCo支持多种覆盖率的统计,包括: 行覆盖率:度量被测程序的每行代码是否被执行,判断标准行中是否至少有一个指令被执行; 类覆盖率:度量计算class...; 指令覆盖:计数单元是单个java二进制代码指令,指令覆盖率提供了代码是否被执行的信息,度量完全独立源码格式; 圈复杂度:在(线性)组合中,计算在一个方法里面所有可能路径的最小数目,缺失的复杂度同样表示测试案例没有完全覆盖到这个模块...图13 JMeter构建结果 2.5 SonarQube SonarQube基于本地服务和mvn命令进行的代码分析,并将分析结果推送到sonar服务器中。 SonarQube采用wrapper技术。...打开浏览器,在地址栏中输入http://:9000(其中为SonarQube所在的IP地址),进入SonarQube的Web页面,用.

    3.3K10

    Sonar Scanner系列之架构与Java篇

    因此,由于扫描器的不同,一个包含了C#、C++和PLSQL的项目,很不幸需要被三个扫描器各自扫描一次,同时生成三个SonarQube project来呈现扫描结果。...配套的,我们通过SonarQube官方提供的SonarQube Scanner for Maven这个插件来进行代码的扫描,如果还要得到单元测试和代码覆盖率报告,那么还需要使用Maven Surefire...1、指定SonarQube服务器地址和口令 整个方案的基础是,让Maven中的Sonar Scanner插件能知道SonarQube服务器和登录口令。...Token产生,可以参见SonarQube使用说明。需要注意的是,这个token的生成是被设计为“阅后即焚”的。...4)为什么C++项目扫出来缺陷、安全漏洞都是0?覆盖率也是0%?

    5K32

    持续集成七 Jenkins配置sonar 配置多模块覆盖率为0问题

    0的情况。...按照上一篇sonar scanner配置方式,它支持单个模块的扫描,但是配置多个模块的时候会出现扫描为0 的情况,我们直接看官方说明:https://docs.sonarqube.org/latest/...sonar.java.source=1.8 关于覆盖率的文档:https://docs.sonarqube.org/latest/analysis/coverage/ #覆盖率报告路径,他是一个通用命令...sonar配置,这个还有搭建ant,然后还要写复杂的配置,然后还有 Cobertura 微服务覆盖率扫描插件,都需要过多的配置,我也没那么多精神搞这些东西。...3.sonarQube配置错误 这个配置的是xml文件,在覆盖率扫描的时候,项服务器这部请求拿到了配置属性按这个配置解析就会报错。

    3.7K30

    代码质量管理平台实战|SonarQube 安装、配置及 JaCoCo、Maven 集成

    此外, SonarQube 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。...SonarQube 并不是简单地将各种质量或覆盖率检测工具的结果(例如 CheckStyle、JaCoCo 等)直接展现给客户,而是通过不同的插件算法来对结果进行再加工,并最终以量化的方式来衡量代码质量...,连单元测试覆盖率的统计也生成出来了,主要原因为在该maven项目之前已经集成了Jacoco插件(具体Maven与Jacoco的集成请参考我的另外一篇文章)。...1.该项目为maven项目,并且Jacoco已经通过POM文件集成到项目中,具体步骤请参考我的另外一篇文章。...2.该集成方案其实还是首先通过maven package 命令去生成对应的覆盖率报告,然后通过sonar scanner直接使用该覆盖率报告并通过一定算法加工并展示到SonarQube的界面上去。

    1.5K30

    Gitlab+Jenkins+SonarQube计算增量覆盖率

    这个方案的核心还是jacoco生成的代码覆盖率报告以及git diff获取到的差量代码这两份报告的解析和计算。 如果采取该方案,则后续的SonarQube扫描部分就可以是可选动作了。...以下是官方提供的一个报告, https://www.sonarqube.org/sonarqube-7-7/ 我们可以看到SonarQube提供了增量代码的覆盖率、重复率、缺陷、安全漏洞等等的度量,并可以基于上述数据来综合判断是否通过质量门禁...案例中,由于设立了增量代码85%的覆盖率,而实际值为72.2%,因此质量门禁未通过。 ? 有了解SonaqQube的读者可能要说了,这个方案存在问题。...=mr-xxx -Dsonar.branch.target=develop 也就是以develop分支为基线,来计算mr-xxx分支相对于develop的代码增量覆盖率,以及静态代码扫描结果,并计算质量门禁结果...总结一下 上述方案中,额外利用了 1)SonarQube Webhook 2) SonarQube 分支插件 和长短分支概念 就能在一般三者集成的方案中实现增量代码覆盖率和质量门禁 微信图片_

    5.7K44

    服务端代码覆盖率统计入门

    本文大致讲述"服务端代码覆盖率统计"的环境搭建和入门,另外也算是最近学习的一个总结. jacoco + ant + spring boot + SonarQube 环境介绍 jacoco是一个开源的覆盖率工具...SonarQube 是一个用于管理源代码质量开放平台,它可以从多个维度检测代码质量,可以快速的定位代码中潜在的或者明显的 Bug、错误....--jacoco任务: 根据前面配置的源代码路径和.class文件路径, 根据dump后,生成的.exec文件,生成最终的html覆盖率报告。...image 展示类中的代码覆盖范围. image 展示类中的代码未覆盖范围....image 覆盖代码行 image 未覆盖代码行 image 结语 本文仅是简单的介绍了服务端的代码覆盖率统计,其中也包含了多个工具和知识点串联起来.

    82310

    软件测试|SonarQube 安装、配置及 JaCoCo、Maven 集成

    此外, SonarQube 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。...SonarQube 并不是简单地将各种质量或覆盖率检测工具的结果(例如 CheckStyle、JaCoCo 等)直接展现给客户,而是通过不同的插件算法来对结果进行再加工,并最终以量化的方式来衡量代码质量...,连单元测试覆盖率的统计也生成出来了,主要原因为在该maven项目之前已经集成了Jacoco插件(具体Maven与Jacoco的集成请参考我的另外一篇文章)。...1.该项目为maven项目,并且Jacoco已经通过POM文件集成到项目中,具体步骤请参考我的另外一篇文章。...2.该集成方案其实还是首先通过maven package 命令去生成对应的覆盖率报告,然后通过sonar scanner直接使用该覆盖率报告并通过一定算法加工并展示到SonarQube的界面上去。

    97110

    如何知道我们的E2E测试覆盖率?

    我们需要一个可以告诉当下在哪里的女巫,她就是 Java Agent。 ---- 什么是 Java Agent 什么是Java代理? Java代理是为应用程序提供检测功能的软件组件。...只需要使用以下两个文件: lib / jacocoagent.jar –> Java代理用以标记代码 lib / jacococli.jar –> CLI转储覆盖率数据并生成报告 ---- 宿主应用程序启动参数设置...我强烈建议您在 docker 镜像中构建jacocoagent。...---- 生成可视化报告 覆盖率数据文件(coverage.exec)对任何人都没有意义。我们可以将其可视化为 html 或 xml 报告。这是人类友好的格式。...---- 将报告上传到SonarQube(可选) 如果您有一个独立的 SonarQube 服务器,这非常好,因为我们可以将覆盖率数据报告上传到 Sonar Web 服务器,以便其他任何人都可以查看。

    1.4K20

    只懂黑盒测试也能学会的代码覆盖率及精准化测试

    常见覆盖率统计工具 emma cobertura jacoco emma 与 cobertura 是为单元测试而设计的覆盖率统计,jacoco 与 emma 同属于一家公司,但是是为了更广泛的覆盖率统计而设计的工具...jacoco-cli 是 jacoco 的一个组件,可以在不依赖 maven、gradle 构建工具的情况下完成对代码的分析。主要用于 tcpserver 工作模式下。...可以通过如下参数限定要分析代码的范围,通常是指明要覆盖的 package 范围 sonar.sources sonar.inclusions 导入覆盖率 sonarqube 可以智能分析新老版本之间的新增代码的覆盖率...通用覆盖率数据模板 在 sonarqube 的 scanner 分析中,加入对应的配置参数即可导入通用测试数据。...通用测试数据导入的常见用途 将各种测试工具的测试报告转换为 sonarqube 支持的格式从而导入平台 将各种覆盖率工具的覆盖率报告转换为标准格式导入平台 根据需求对差异 diff 覆盖率进行定制,比如除了对新增代码做覆盖

    1.2K20

    DevOps 工具链:SonarQube 代码质量检查工具总结

    1 概述 SonarQube(sonar)是一个开源平台,用于管理源代码的质量。SonarQube不只是一个质量数据报告工具,更是代码质量管理平台。...(3) 糟糕的复杂度分布 文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员 难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。...(4) 重复 显然程序中包含大量复制粘贴的代码是质量低下的,SonarQube可以展示 源码中重复严重的地方。...(6) 缺乏单元测试 SonarQube可以很方便地统计并展示单元测试覆盖率。...4.2.1 SonarQube说明 4.2.2 开发者本地基于Maven使用SonarQube Jenkins的每日构建默认是使用master,在开发过程中,有时需要在开发者的开发中的分支进行代码检测

    4.3K32

    软件测试|SonarQube 安装、配置及 JaCoCo、Maven 集成

    此外, SonarQube 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。...SonarQube 并不是简单地将各种质量或覆盖率检测工具的结果(例如 CheckStyle、JaCoCo 等)直接展现给客户,而是通过不同的插件算法来对结果进行再加工,并最终以量化的方式来衡量代码质量...,连单元测试覆盖率的统计也生成出来了,主要原因为在该maven项目之前已经集成了Jacoco插件(具体Maven与Jacoco的集成请参考我的另外一篇文章)。...1.该项目为maven项目,并且Jacoco已经通过POM文件集成到项目中,具体步骤请参考我的另外一篇文章。...2.该集成方案其实还是首先通过maven package 命令去生成对应的覆盖率报告,然后通过sonar scanner直接使用该覆盖率报告并通过一定算法加工并展示到SonarQube的界面上去。

    1.2K20
    领券