Python测试构建

更新时间:
复制为 MD 格式

通过Python测试构建流水线,自动化进行代码检出、编译构建、运行单元测试、输出结果记录、测试统计等能力,减少人工干预,增强项目可见性,并且有效的日志能够帮助开发者更容易发现并解决存在问题。

步骤一:新建测试构建流水线

  1. 登录流水线 Flow控制台,单击右上角新建流水线。

  2. 在弹出选择流水线模板页面,选择 Python · 测试、构建 ,然后单击 创建

步骤二:配置流水线源

  1. 流水线源阶段,单击添加流水线源

  2. 选择示例代码源代码类型Python,单击添加

步骤三:配置测试

流水线Flow支持用户在不同测试阶段,选择不同的构建集群构建环境,进行测试任务。

  1. 配置基本参数。

    参数

    说明

    任务名称

    您可自定义任务名称,一般保持默认即可。

    构建集群

    支持以下构建集群:

    构建环境

    支持以下构建环境:

    • 指定容器环境(云效默认构建集群):流水线 Flow在构建机器上启动指定容器,在单容器环境进行构建。云效提供官方常用镜像供选择使用、您也可以指定自己的镜像作为运行环境。

    • 默认VM环境(仅私有构建集群支持):须选择指定构建节点流水线 Flow会直接在构建机器上安装环境并执行任务,为了提升任务构建速度建议提前在构建机器上安装好相应SDK和环境。

    • 默认环境(云效默认构建集群/私有构建集群):流水线 Flow会根据任务类型默认使用不同的容器镜像,预装相应的SDK和环境,默认镜像不可修改(Deprecated)。

    说明

    任务执行期间,流水线任务构建环境分配给用户使用,构建环境的使用权归属用户,任务执行脚本由用户自定义。

    下载流水线源

    开启下载流水线源后,您配置的源文件将会被下载至对应的工作目录下。支持以下三种方式:

    • 下载全部流水线源

    • 不下载流水线源

    • 下载部分流水线源

  2. 配置 Python 单元测试 任务。

    根据您选择的构建环境,配置测试任务。

    指定容器环境/默认VM环境

    1. 安装Python ,根据项目选择合适的Python版本。在流水线中配置安装 Python步骤,设置步骤名称为"安装 Python",Python版本选择3.7

    2. 执行测试命令 ,如有需求可以自定义。添加执行测试命令步骤,在执行命令区域输入 pip install pytest pytest-html -i https://mirrors.aliyun.com/pypi/simple 安装测试依赖,再输入 pytest --ignore=Python --html=report/index.html || true 执行测试并生成 HTML 报告。

    3. 单元测试报告,配置相关参数。

      参数

      说明

      测试报告文件路径

      测试报告文件路径,必须指向一个文件。该文件所在目录中的所有内容都会被一起上传。例如report/index.html。

      测试工具

      测试工具/框架,例如Python-Pytest。

      测试用例失败时,停止流水线

      有失败单测用例时,是否停止流水线运行。默认为true

    默认环境

    说明

    流水线模板创建后默认使用指定容器环境,单击默认环境后,原有的任务步骤将失效,您需清空原有配置,并重新添加以下任务步骤。

    添加步骤 > 测试 > Python单元测试,配置相关参数。

    参数

    说明

    步骤名称

    自定义步骤名称。

    Python版本

    根据项目需求选择合适的Python版本。

    测试命令

    测试命令为用于执行测试以及生成报告的用户自定义测试命令。命令执行目录为代码库根路径(支持pytest-html报告)。

    测试报告目录

    测试报告目录为生成的测试报告所在目录。当前步骤会自动上传该目录并用于后期的报告展示。例如report。

    测试报告入口文件

    测试报告入口文件为测试报告入口文件名称。用于打开报告时的默认首页。例如index.html。

    红线信息

    根据条件设置判定本任务是成功还是失败。

    默认测试命令为 pytest --html=report/index.html。红线信息中可选择 测试通过率 等指标,并设置比较条件(如大于)和阈值(如 100)。

步骤四:配置构建

Python构建阶段,您可以使用不同的构建环境,配置构建任务。

指定容器环境/默认VM环境

  1. 安装Python,根据构建需求选择合适的Python版本

  2. 执行Python构建命令,执行命令默认make build。在 步骤名称 中填写 执行Python构建命令,在 执行命令 区域输入 python --version 以验证 Python 版本。

  3. 构建物上传任务,配置上传方式及相关参数。

    选择以下上传方式并配置具体参数。

    组织私有通用制品仓库(制品将上传Packages统一管理)

    参数说明:

    参数

    说明

    添加服务连接

    单击添加服务连接,根据界面提示创建流水线 Flow制品仓库 Packages的服务连接。更多信息,请参见服务连接管理

    仓库

    添加服务连接后,可选择Packages中的通用制品仓库作为目标仓库。

    说明

    关于通用制品仓库的更多信息,请参见通用制品管理

    制品名称

    用于区分多次构建产生的不同产出物,定义后在部署组件使用,建议使用动态变量形式设置。默认使用Artifacts_${PIPELINE_ID}。您可自定义构建物的名称(如target1)。

    制品版本

    版本用于唯一标识您的制品文件,因此同一制品不允许推送重复版本。建议使用动态变量形式,比如 ${DATETIME}

    打包路径

    设置起始位置为项目文件夹的相对路径(如target/),可以设置多个文件路径。

    制品中包含打包路径的目录

    如果选中,则生成的压缩包中,包含完整的打包路径,否则仅包含文件。当选择了多个打包路径时,该值自动设置为true

    归档至云效公共存储空间(供后续任务拉取并部署)

    参数说明:

    参数

    说明

    制品名称

    用于区分多次构建产生的不同产出物,定义后在部署组件使用,建议使用动态变量形式设置。默认使用Artifacts_${PIPELINE_ID}。您可自定义构建物的名称(如target1)。

    打包路径

    设置起始位置为项目文件夹的相对路径(如target/),可以设置多个文件路径。

    制品中包含打包路径的目录

    如果选中,则生成的压缩包中,包含完整的打包路径,否则仅包含文件。当选择了多个打包路径时,该值自动设置为true

默认环境

说明

流水线模板创建后默认使用指定容器环境,单击默认环境后,原有的任务步骤将失效,您需清空原有配置,并重新添加以下任务步骤

  1. 添加步骤 > 构建 > Python构建 ,配置相关构建命令。

    参数

    说明

    步骤名称

    自定义步骤名称。

    Python版本

    根据项目需求选择合适的Python版本。

    执行构建命令

    Python默认执行命令为python --version。

    高级设置中,构建环境规格默认为 DEFAULT超时时间默认为 240 分钟。

  2. 添加步骤 > 上传 > 构建物上传,配置构建物相关参数。

    选择以下上传方式并配置具体参数。

    组织私有通用制品仓库(制品将上传Packages统一管理)

    参数说明:

    参数

    说明

    添加服务连接

    单击添加服务连接,根据界面提示创建流水线 Flow制品仓库 Packages的服务连接。更多信息,请参见服务连接管理

    仓库

    添加服务连接后,可选择Packages中的通用制品仓库作为目标仓库。

    说明

    关于通用制品仓库的更多信息,请参见通用制品管理

    制品名称

    用于区分多次构建产生的不同产出物,定义后在部署组件使用,建议使用动态变量形式设置。默认使用Artifacts_${PIPELINE_ID}。您可自定义构建物的名称(如target1)。

    制品版本

    版本用于唯一标识您的制品文件,因此同一制品不允许推送重复版本。建议使用动态变量形式,比如 ${DATETIME}

    打包路径

    设置起始位置为项目文件夹的相对路径(如target/),可以设置多个文件路径。

    制品中包含打包路径的目录

    如果选中,则生成的压缩包中,包含完整的打包路径,否则仅包含文件。当选择了多个打包路径时,该值自动设置为true

    归档至云效公共存储空间(供后续任务拉取并部署)

    参数说明:

    参数

    说明

    制品名称

    用于区分多次构建产生的不同产出物,定义后在部署组件使用,建议使用动态变量形式设置。默认使用Artifacts_${PIPELINE_ID}。您可自定义构建物的名称(如target1)。

    打包路径

    设置起始位置为项目文件夹的相对路径(如target/),可以设置多个文件路径。

    制品中包含打包路径的目录

    如果选中,则生成的压缩包中,包含完整的打包路径,否则仅包含文件。当选择了多个打包路径时,该值自动设置为true

步骤五:运行并查看目标流水线任务

  1. 流程配置完成后,单击页面右上角 保存并运行 ,并在弹出的对话框中单击 运行 ,即开始运行流水线任务。流水线执行完成后,结果页面显示 #2 运行成功,流水线可视化依次展示 流水线源(master分支)、测试阶段(Python单元测试,耗时21秒)和 构建阶段(Python构建,耗时47秒),构建阶段产出运行产物。

  2. 运行流水线任务完成后,在构建镜像任务节点,在右下方单击日志,可以查看到流水线任务的执行过程结果日志。流水线运行成功,所有构建步骤均显示执行完成(绿色勾号),构建物上传 步骤日志确认 artifact 已成功上传至制品仓库。

  3. 如果您将构建物上传到组织私有通用制品仓库,您可在制品仓库Packages的对应仓库中查看已上传的构建物,更多信息,请参见NPM 制品管理