关于代码质量:如何使用云效Flow做质量检测保障高质量的交付速度

47次阅读

共计 2770 个字符,预计需要花费 7 分钟才能阅读完成。

应用云效 Flow 做品质检测,保障高质量的交付速度,云效「Flow」提供代码扫描、平安扫描和各种自动化测试能力,反对人工测试卡点、自动化验证卡点等多种品质红线,确保业务品质。云效流水线 Flow 流水线是继续交付的载体,通过构建自动化、集成自动化、验证自动化、部署自动化,实现从开发到上线过程的继续交付。通过继续向团队提供及时反馈,让交付过程高效顺畅。
更多「云效」产品,查看:云效疾速入门

「Flow」提供代码扫描、平安扫描和各种自动化测试能力,反对人工测试卡点、自动化验证卡点等多种品质红线,确保业务品质。如何应用品质检测能力,上面这篇内容通知你

一、代码扫描

1、代码扫描能力

云效 Flow 为支流语言提供了开箱即用的代码扫描能力,为用户提供了疾速检测代码品质的能力。

** 反对语言和规定

目前飞流反对扫描的语言和规定,如下表所示:

查看详情点击代码扫描能力

扫描场景反对

  • 代码全量扫描
  • 代码增量扫描 全量扫描和增量扫描
  • 特定的代码目录扫描 指定或排除目录扫描
  • 指定规定集扫描 指定扫描规定集

2、应用代码扫描

云效 Flow 提供了开箱即用的代码扫描能力,在流水线中增加「代码扫描」工作,即可启用。用户能够通过以下形式增加代码扫描工作。

  • 应用模板新建流水线,抉择蕴含「代码扫描」工作的模板
  • 在已有的流水线中,增加新的阶段,并抉择「代码扫描」工作

流水线模版创立

新建流水线时,抉择对应的开发语言,能够查看以后语言下的默认流水线模版,抉择带有“代码扫描”节点的流水线模版,即可疾速应用代码扫描能力。

编排流水线,增加代码扫描工作

在流水线编排中,能够通过增加工作,在工作类型分类“代码扫描”的工作,能够疾速的增加代码扫描工作。

3、全量扫描和增量扫描

云效 Flow 反对代码全量扫描和增量扫描,能够依据须要,抉择适合的扫描形式进行应用。

1)代码规约全量扫描,通过飞流的扫描工作对指定的代码工程进行编码规约全量检测。

长处:反对跨文件援用,代码扫描全面。
毛病:但扫描速度较慢,问题量会比拟多,难以修复

2)代码规约增量扫描,是基于 Gitlab 的一次 push,主动获取 diff 内容,对 diff 文件用编码规约规定进行扫描,并过滤出此次提交产生 diff 规约问题性能。

长处:只扫描 diff 文件,扫描速度很快,增量问题间接关联到人,能无效避免代码提交引进新问题数。
毛病:因只扫描 diff 文件,不能发现跨文件援用呈现的规约问题。

4、P3C 代码扫描

Java 规约扫描是阿里巴巴多年教训提炼的 Java 标准 - 蕴含 7 大类 Java 代码规定

  • 命名规约
  • 正文标准
  • 汇合

*OOP 规约
并发解决
管制语句
其余。如果未做扫描配置,默认会对所有规定进行扫描,也能够在规约扫描组件配置。*

指定扫描规定集

配置指定规定集,配置规定集如下图所示:

1)在流水线编辑状态,点击相应的规约扫描卡片
2)在开展的卡片抽屉上,点击工作列表 – 如图中:Java 代码扫描
3)在规约汇合处,配置相应的规定集

指定或排除目录扫描

配置目录扫描:
1)在流水线编辑状态,点击相应的规约扫描卡片,
2)在开展的卡片抽屉上,点击工作列表 – 如图中:Java 代码扫描
3)子目录:配置扫描的相应目录;排除子目录:配置排除在扫描范畴内的相应目录。

5、应用自定义代码扫描规定

目前云效 Flow 曾经内置了反对 Java,JavaScript,Python,Go,TypeScript,PHP 等语言的代码品质扫描能力,并提供了默认的代码扫描规定。对于须要对扫描规定进行调整的用户能够应用自定义代码扫描规定。
ps:更多规定请参考 ESLint 官网文档

目前反对自定义代码扫描规定如下:

1)、ESLint 自定义规定

增加代码扫描工作

增加流水线工作并抉择 JavaScript 代码扫描,如下所示:

应用自定义规定

默认状况下 Flow 应用内置的 eslint 查看规定,如果须要应用自定义规定,须要在工作配置中勾选“应用本地 ESLint 配置”,勾选后须要确保我的项目根门路下蕴含.eslintrc.* 文件即可。

2)、TypeScript 自定义规定

增加 TS 代码扫描工作

增加工作并抉择 TypeScript 代码扫描工作,如下所示:

应用自定义规定

默认状况下,Flow 会应用 TS Lint 默认的代码扫描规定。为了应用自定义的代码扫描规定用户须要在我的项目根门路下提供 tslint.json 文件。

首次应用能够应用如下命令生成该文件:

tslint –init

保留并运行流水线,TSLint 工作会主动查看代码我的项目根门路下是否蕴含该文件,如果蕴含则应用用户定义的 tslint.json 文件。

3)、Java P3C 自定义规定
自定义规定集

用户能够从 Github 获取默认的规定汇合文件,并提交到代码仓库中。增加 Java 代码扫描如下所示:

在工作配置中,勾选“应用自定义规定目录”选项,并制订自定义规定文件所在目录,如下图所示:

保留并运行流水线即可应用代码库中定义的自定义规定集。

二、单元测试

云效 Flow 为支流语言提供了开箱即用的单元测试能力,能够不便的对代码进行单元检测。

反对语言

目前飞流反对单元测试的语言如下表所示:

  • Java Maven
  • Java Gradle
  • Nodejs
  • Python
  • PHP Codeception
  • PHP Unittest
  • Golang

如何应用单元测试

在飞流中能够通过流水线工作疾速的应用单元测试。

新建流水线时,通过流水线模版创立单元测试工作

新建流水线时,抉择对应的开发语言,能够查看以后语言下的默认流水线模版,抉择带有“测试”节点的流水线模版,即可疾速应用单元测试能力

编辑流水线时,通过工作模版创立单元测试工作

在流水线编排中,能够通过增加工作,抉择分类在“测试”下的工作,对应应用的语言来创立单元测试。

三、品质红线

品质红线是云效 Flow 流水线提供的品质卡点能力,用于标准化质量标准,当阶段中存在品质项尚未达标的状况下,阻止公布流程进入到下一阶段(环节)。

配置品质红线

品质红线以后反对在测试相干的工作中进行设置,蕴含:

  • 代码扫描能力
  • 单元测试

在流水线编辑状态,点击测试相干的工作,点击“增加红线”,即可呈现红线信息,用于指定以后测试工作必须达到的规范。
以扫描工作为例,能够设定红线如下图:

  • Blocker 的问题为 0
  • Major 的问题为 0
  • Critial 的问题为 0

品质红线失效

在流水线运行状态,会依据对应的品质红线对测试工作进行判断,是否可能通过红线,如果未通过红线,对应的工作将失败。

品质红线跳过

思考在一些非凡的状况下,未通过品质红线的流程也须要持续往下执行,飞流也提供了“跳过”的能力,能够由管理员将红线跳过。

云效流水线 Flow 流水线是继续交付的载体。云效 Flow 做品质检测,可能保障高质量的交付速度,为你和团队提供代码扫描、平安扫描和各种自动化测试能力,反对人工测试卡点、自动化验证卡点等多种品质红线,确保业务品质。通过继续向团队提供及时反馈,让交付过程高效顺畅。

正文完
 0