商盟旺铺
华北代理商sonarqube规则的行业须知「华克斯」
来源:2592作者:2022/3/8 4:07:00






如何使用 SonarQube 改进工作流


twitter作为开发人员, 我不得不多次修复生产环境中的问题。有时, 我在代码之前没有看到任何错误, 而在其他时间, 我花了很多时间试图理解别人写的代码-更糟的是, 我把代码放到生产中, 在几个月后发现了安全漏洞。

很可能你也面对过这种情况。因此, 有一个工具, 可以帮助您在早期阶段检测到它们, 岂不是很棒吗?SonarQube 使这成为可能。在这篇文章中, 您将了解它如何帮助您清理代码并防止将来出现问题。

SonarQube 入门SonarQube 是一个开放源码的质量管理平台, 致力于不断分析和测量技术质量, 从***早的计划阶段到生产。通过将静态和动态分析工具结合在一起, SonarQube 连续监视七轴上的代码, 如重复代码、编码标准、单元测试、复杂代码、潜在 bug、注释和设计以及体系结构。通过提高所有利益相关者的***度生命周期,连续检测使企业能够接受代码质量whole-heartedly。

SonarQube 是一种用于主要编程语言的代码分析器, 如 c/c++、JavaScript、Java、c#、PHP 或 Python, 等等。通常, 应用程序同时使用多种编程语言, 例如: Java、JavaScript 和 HTML 的组合。各种各样的组织使用SonarQube提供的产品组合的范围(从本公司的免费"开源"选项给企业,站点范围内的"终ji"许可版本)。SonarQube 自动检测这些语言并调用相应的分析器。

SonarQube 现在是 Bitnami 目录的一部分。您可以***或推出它与我们准备使用的云图像只需几次点击和开始使用它在您的所有项目。利用 Bitnami 图像的特点: 安全、***xin、优化、一致等。

玩 SonarQube在这个 GitHub 的项目中, 您将找到一个用 JavaScript 编写的代码示例。目标: 向您展示如何将 SonarQube 合并到您的开发工作流中。或者,您可以右键单击某个问题,然后选择要带到SonarLint规则说明视图的规则说明,以及具有兼容和不兼容代码示例的规则的详细说明。存储库包含两个主文件夹 (源和测试), 这样, 您就可以知道测试所涵盖的代码的百分比。

这个项目还包括一个声纳工程. 属性文件, 其中有一些配置参数需要配置 SonarQube, 如用户名, 密码, 语言等。

运行

$ 声纳-扫描仪在项目文件夹内, 这样就启动了第yi个扫描仪, 您可以在 web 界面中检查结果。

第yi次扫描

正如您在上面的截图中所看到的, 当前的代码有零 bug、零漏洞和六代码的气味。

我将修改源代码以引入一个 bug 和一个漏洞。这一次是有意的, 但是在日常的工作中, 这样的问题会在你没有意识到的情况下出现。

添加错误

再次运行扫描仪使用

$ 声纳-扫描仪如预期的那样, 将出现新的 bug 和漏洞。再次检查分析以查看所做的更改:

比较扫描

屏幕右侧将出现一个新节 (以黄色高亮显示)。SonarQube 处理两种状态: 当前状态 (以白色表示) 和***xin更改。正如您在截图中所看到的, 上次扫描中引入的更改增加了一个 bug 和一个漏洞。声纳覆盖7段代码质量体系结构和设计单元测试重复代码潜在bug复杂代码编码标准评论SonarQube接收文件作为输入,并分析他们连同障碍。SonarQube 评估每个部分的质量, 评分基于不同的参数, 一个是***jia状态。在这种情况下, 引入 bug 导致 "bug" 部分从 a 传递到 C, "漏洞" 部分从 a 到 B。

您可以设置 "泄漏期间" 来确定要进行比较的方式: 按时间或在每个扫描仪执行之间。

让我们详细地看看 "覆盖率" 一节: 38.1% 是***测试覆盖率 (正如您在 GitHub 存储库中看到的那样, 我对某些文件进行了测试, 但对于所有的文档都没有)。在黄色部分, 您可以看到新添加的行的覆盖率。以前, 为了添加错误, 我引入了一些新行, 但我没有为这些新行创建任何测试, 因此新的测试覆盖率为0%。作为公司越来越需要提高质量和不良的后果的方法软件开发是可见的,可以对创收产生严重的损害,并客户和前景的参与,我们认为迫切需要改善的行为关于代码质量。此外, 点击覆盖范围, 我可以看到更多的信息的覆盖面, 例如: 覆盖的文件, 覆盖线的数量, 等等。

错误信息

通过这种快速而简单的分析 (您只需执行一个命令), 您将能够防止出现在生产环境中的错误, 使代码保持安全并遵守***jia做法和质量标准。在下面的迭代中, 我将致力于实现零 bug、漏洞和代码气味的目标。我还可以在测试中得到100% 的代码。值得注意的是,现代化的体系结构不再需要分析器和数据库之间的直接连接。一旦我的代码处于这种状态, 就很容易看出所做的更改是否引入了某种错误或坏的做法。

如何挤压 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 启用用户身份验证和单一登录。谷歌认证: 启用用户身份验证授权到谷歌。制定的Fortran环境在1976年,它不包括现代语言结构,如尝试/捕zhuo,和lambda。读过这篇文章后, 你可能想尝试 SonarQube, 看看它是如何融入你的日常工作的。您可以直接从 Bitnami 目录***或启动它。

快乐 (和安全) 编码!



使用SonarQube进行PL / SQL分析 - 评估质量(2/3)

发表评论

PLSQLEva2可以让你等待PL / SQL代码和SonarQube这一系列的以下内容,但是我很忙,工作和我的笔记本电脑突然决定放弃我,当然引用墨菲的定律来证明在***坏的情况下分解时间。

在之前的帖子中:在使用SonarQube配置PL / SQL代码的分析后,我们通过指导“阻止程序和关键”规则的鲁棒性,性能和安全性定义了我们自己的质量配置文件。现在看起来像我们的仪表盘?

继续阅读→

此条目发布于2014年2月27日由Jean-Pierre FAYOLLE发行的SonarQube - PL / SQL。

使用SonarQube进行PL / SQL分析 - 评估质量(1/3)

PLSQL_EvaluationQualité1A作为本系列的综合,用于使用SonarQube分析PL / SQL代码。

在与Jenkins配置我们的分析之后,我们启动了它,发现了17个阻塞程序,但是使用默认的SonarQube质量配置文件发现了零个关键缺陷(Critical)。事实上,现有的5项关键规则已被禁用,另外还有一些其他不同临界规则:132项中有58项。这是幸运的SonarSource的一个高优先级,虽然它不会被宣布时,它将船舶。

此条目发布于2014年1月30日由Jean-Pierre FAYOLLE发行的SonarQube - PL / SQL。



SonarQube和JaCoCo的个人测试代码覆盖率

构建部分

这里不需要修改但是,您应该注意Maven Surefire的任何自定义配置,以确保它也适用于我们要创建的配置文件。在春季宠物诊suo的情况下,这是我们正在写的参考POM的相关部分:

<建立> <插件>

...

<插件>

 <的groupId> org.apache.maven.plugins </的groupId>

 <artifactId的>行家-万无一失-插件</ artifactId的>

 <版本> 2.13 </版本>

 <结构>

  <argLine> -XX:-UseSplitVerifier </ argLine>

  <包含>

   <包括> ** / * Test.java </包括>

   <包括> ** / * Tests.java </包括>

  </包括>

  <排除>

   <排除> ** /它/ * IT.java </排除>

  </排除>

 </配置>

</插件>

</插件> </建造>

这种配置告诉Surefire:1)排除执行单元测试的集成测试(Surefire的双插件,Failsafe涵盖了集成测试);和2)禁用字节码验证器,防止类被调试时的运行时错误(即添加mocks或TopLink增强功能时)。

依赖部分

在本节中,不需要进行任何更改。我们只想注意到,如果您的项目已经在利用JaCoCo收集整合测试覆盖率指标,并且明确地指出了本部分中的JaCoCo伪像,那么可以将其留下 - 至今没有确定任何冲突。软件质量必须是开发过程的一部分,这意味着满足质量标准是一个的硬要求能够声明开发完成。无论如何,它不应该在这里需要,所以从这个部分删除它可能更安全。

档案部分

所有必需的更改都在本节中。而且它们都非常干净,因为它们都只需要向POM添加一个新的配置文件。此配置文件将为Surefire配置一个特殊侦听器,以确保适当收集每个单独测试用例的覆盖度量。IDC建议评估和采用这些类型的自动化方法以及组织和过程的变化必要的,以使有效的采用和改进的软件质量战略。为了保证成功的测试执行,我们将在此保持与POM的构建部分中显示的相同配置。***,配置文件将为包含侦听器代码的伪zao添加新的依赖关系。结果是这样的:

<轮廓>

<! - 使用SonarQube和JaCoCo计算每个测试的覆盖率指标

<ID>覆盖每次测试</ ID>

 <建立>

     <! - 与常规测试执行目标相同的配置 - >

     由JaCoCo prepare-agent - >配置的<! - 加argLine参数

     <argLine> $ {argLine} -XX:-UseSplitVerifier </ argLine>

     <! - 每个测试覆盖所需的新配置 - >

     <性能>

      <属性>

       <名称>听者</名称>

        <值> org.sonar.java.jacoco.JUnitListener </值>

      </属性>

 </建造>

<依赖性>

  <的groupId> org.codehaus.sonar-plugins.java </的groupId>

  <artifactId的>声纳-jacoco-听众</ artifactId的>

  <版本> 2.3 </版本>

  <范围>测试</范围>

 </依赖性>

</依赖>

</简档>



华克斯 (业务联系人)

13862561363

商户名称:苏州华克斯信息科技有限公司

版权所有©2024 天助网