Jenkins,Docker,代码覆盖率

Jenkins

  1. Jenkins是一款开源的持续集成工具,具有自动化构建,测试,部署等功能
  2. 可以在Jenkins上下载插件以满足编译条件
  3. 将代码提交到git上,设置git的触发条件,满足条件时,Jenkins下载远程code到本地,然后执行构建脚本等,自动构建,测试,部署等。远程的项目下载到Jenkins的workspace文件夹中
  4. git上调用Jenkins暴露的接口,让Jenkins主动下载更新后的代码到本地

Docker

  1. 镜像中包含你要运行的程序以及他依赖的所有库,一个镜像可以创建多个容器,而dockerfile就是生成镜像的自动化脚本,也可以通过命令直接创建容器。通过命令创建容器需要完整的镜像,而dockerfile不用。但dockerfile创建时间更长,稳定性也不佳
  2. docker软件是远程镜像,本地镜像,本地容器的基座,也是运行容器的引擎。用于构建,运行,传送 应用程序的平台
    3.
    4.
  3. docker-compose容器的编排工具,必须在docker-compose.yml文件同目录下执行docker-compose up -d
  4. k8s通过API编排一系列docker-compose(k8s中叫node)的工具。可以将node在服务器中复制,迁移等。通过其自己的策略

代码覆盖率

  1. 使用coverage计算代码覆盖率,使用coverage run -m pytest xxx语句运行,用coverage report生成文本报告,用coverage html生成网页报告,其中包含某 类,某方法,某文件的代码覆盖率,点进去可以看到具体是哪些代码行执行了。
  2. 当被测模块和测试脚本不在同一文件夹下,需要先引入sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))),否则不会生效
  3. 也可以直接用coverage run 运行python脚本,例 coverage run -m axon
  4. 每次生成报告前,需要先coverage erase 清除之前存留的报告,以确保不会对本次报告产生影响
  5. 如果程序中存在rpc调用,coverage不会跟踪到调用的rpc方法,哪怕他们在同一个project里
posted @ 2024-11-20 17:06  疯啦吧你  阅读(1)  评论(0编辑  收藏  举报