openstack rdo

所有OpenStack项目都带有自己的单元测试集,例如, 这是oslo.config项目的单元测试文件夹。 当建议提出新补丁进行审核时,将执行这些测试,以确保新代码不会破坏现有(或新)功能。 例如,如果您查看此评论 ,您会看到执行的持续集成作业之一是“ openstack-tox-py27”,它使用Python 2.7运行单元测试。

这如何转化为包装界? 作为规范文件的一部分,我们可以定义%check部分,在其中添加脚本以测试已安装的代码。 尽管这不是Fedora打包指南中的强制性部分,但强烈建议您这样做,因为它可以很好地保证打包的代码是正确的。

在许多情况下,RDO软件包的规范中都包含此%check部分,并且在构建软件包时将执行项目的单元测试。 这是为python-oslo-utils包执行的单元测试的示例 。

“但是为什么包装时又要再次执行这些测试?” Ÿ欧可以问。 毕竟,这些相同的测试在合并之前由Zuul门执行。 好吧,这有很多原因:

  • 这些单元测试使用特定的操作系统版本和特定的软件包集运行。 这些可能与RDO使用的那些有所不同,因此我们需要确保项目与那些组件的兼容性。

  • 使用pip将项目依赖项安装在OpenStack Gate中,某些版本可能有所不同。 这是因为OpenStack项目为每个依赖项支持多种版本,但通常仅使用一个版本进行测试。 我们已经看到了这样的情况:项目声明支持库的x.0版本,但随后添加了需要x.1版本的代码。 这种变化不会被OpenStack门注意到,但是会使打包时的单元测试失败。

  • 它们还使我们能够在上游闸门中发现问题之前将其发现。 OpenStack项目使用需求项目来决定其他项目应使用自己的库的哪个版本。 这允许出现一些相互依赖的问题,其中Oslo库中的更改可能会发现另一个项目中的错误,但是直到用新版本的Oslo库更新需求项目后,该问题才引起注意。 在RDO情况下,我们在所有项目中使用master分支中的代码运行RDO干线构建器,这使我们能够提前通知,如本示例bug所示 。

  • 当新的依赖项已添加到项目中时,它们会向我们发出预警,但它们尚未包含在软件包规格中。 由于单元测试使用大多数代码,因此任何缺少的依赖关系都应使它们失败。

由于在包构建过程中执行单元测试的方式,因此在定义它们时需要牢记一些细节。 如果您作为开发人员关注他们,则将使包装商的生活更轻松:

  • 不要创建依赖于Internet可用资源的单元测试。 大多数打包环境在构建包时都不允许Internet访问,因此依赖于通过DNS解析IP地址的单元测试将失败。

  • 尝试将单元测试的运行时间保持在合理的范围内。 如果一个项目的单元测试需要1个小时才能完成,那么很可能在打包过程中将不会执行它们,例如在本示例中 。

  • 不要以为总是会在具有8个快速核心的机器上执行单元测试。 我们已经看到,在有限的环境中运行或者单元测试花费的时间超过一定时间时,单元测试会失败。

既然您知道单元测试对于RDO封装的重要性,那么您可以继续进行并确保我们在每个包装上都使用它。 骇客骇客!


想更多地了解打包和安装OpenStack? OpenStack峰会将于5月 21 至24日 在温哥华 举行,这 是一次学习更多有关此主题的绝好机会。 本文还发布在RDO Project博客上 。

翻译自: https://opensource.com/article/18/5/unit-tests-rdo-package-builds

openstack rdo

openstack rdo_为什么我们在RDO中对OpenStack软件包构建使用测试相关推荐

  1. CENTOS7.2使用RDO方式安装OpenStack Mitaka笔记

    CENTOS7.2使用RDO方式安装OpenStack Mitaka笔记 1.配置/etc/hosts 192.168.13.108 openstack 2.配置OpenStack Mitaka安装源 ...

  2. RDO Packstack 安装 Openstack Icehouse CentOS 6.5 单网卡

    http://jasonyu37.blog.51cto.com/8877469/1421176 CentOS 6.5 使用Redhat RDO packstack 安装openstack Icehou ...

  3. openstack实例控制台显示响应时间过长_监控OpenStack的技巧

    如果你以前曾在云平台上工作过,你一定熟悉这些系统的分布式和解耦性质.解耦的分布式系统依赖于微服务来执行特定的任务,每个微服务都会暴露自己的REST(表示状态转移)API.这些微服务通常以诸如Rabbi ...

  4. OpenStack云计算与HPC之一: 前言和OpenStack与HPC虚拟化

    此篇文章翻译编辑自OpenStack全球悉尼峰会<Crossroad of Cloud and HPC>. 一.前言 OpenStack®是领先的开源云计算IaaS平台,助力世界上许多非常 ...

  5. 打开浏览器的包 node_如何发布可在浏览器和Node中使用的软件包

    打开浏览器的包 node When you create a package for others to use, you have to consider where your user will ...

  6. 测试nginx网站代码_在40行以下代码中使用NGINX进行A / B测试

    测试nginx网站代码 by Nitish Phanse 由Nitish Phanse 在40行以下代码中使用NGINX进行A / B测试 (A/B testing with NGINX in und ...

  7. R语言使用party包中的ctree函数构建条件推理决策树的流程和步骤、条件推理决策树是传统决策树的一个重要变体、条件推理树的分裂是基于显著性测试而不是熵/纯度/同质性度量来选择分裂

    R语言使用party包中的ctree函数构建条件推理决策树的流程和步骤(Conditional inference trees).条件推理决策树是传统决策树的一个重要变体.条件推理树的分裂是基于显著性 ...

  8. R语言使用R基础安装中的glm函数构建乳腺癌二分类预测逻辑回归模型、分类预测器(分类变量)被自动替换为一组虚拟编码变量、summary函数查看检查模型、使用table函数计算混淆矩阵评估分类模型性能

    R语言使用R基础安装中的glm函数构建乳腺癌二分类预测逻辑回归模型(Logistic regression).分类预测器(分类变量)被自动替换为一组虚拟编码变量.summary函数查看检查模型.使用t ...

  9. R语言使用party包中的ctree函数构建条件推理决策树(Conditional inference trees)、使用plot函数可视化训练好的条件推理决策树、条件推理决策树的叶子节点的阴影区域表

    R语言使用party包中的ctree函数构建条件推理决策树(Conditional inference trees).使用plot函数可视化训练好的条件推理决策树.条件推理决策树的叶子节点的阴影区域表 ...

最新文章

  1. PyTorch版YOLOv4更新了,不仅适用于自定义数据集,还集成了注意力和MobileNet
  2. Linux系统下软件包管理四
  3. oracle 不查加锁的记录,oracle 锁查询 select加锁方法
  4. 非正常关闭vi编辑器时会生成一个.swp文件
  5. 华夫饼为什么不松软_掌握这2个关键点,5个小细节,3个小技巧,保证烙饼松软又好吃...
  6. this.getstate_Java线程类Thread.State getState()方法(带示例)
  7. 轻松云上揽胜中华,靠的就是这份聪明的“地图”!
  8. Framework学习(一)深入Android 系统架构
  9. Fixjs——显示容器基类DisplayObjectContainer
  10. 变量 重复声明_JS:定义变量的var、let有何操作?(360°无死角)
  11. mysql 手册及优化
  12. 【资产管理】2020年海外头部资管机构经营特点及启示
  13. 网络舆情监测系统TOOM
  14. linux-tar命令
  15. Mysql中key 、primary key
  16. Matlab利用textread或者textscan读取格式化txt文件
  17. 使用画图软件更改图片大小
  18. 视频打开后从头开始_后端软件体系结构清单:如何从头开始构建产品
  19. windows11/windows10设置移动热点自启(图文步骤教程)
  20. 不仅室内,思岚科技激光雷达在室外使用同样出色

热门文章

  1. android多线程下载程序卡死,android 多线程下载与断点续传
  2. DAS、SAN、NAS三种存储方式的概念及应用
  3. AV1 motion filed projection
  4. 【渝粤教育】电大中专电子商务网站建设与维护 (18)作业 题库
  5. 常用的Python标准库有哪些
  6. 漫画 | 妹子让我写个程序,我却搞砸了...
  7. 1万块钱存入银行,10年后,连本带利能取多少钱?
  8. 万分之一错误率问题的分析及定位
  9. 一段代码——使用rdkit函数生成分子文件的3D构象
  10. javascript求质数(素数)和合数