前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Github美化-Travis与Codecov入门

Github美化-Travis与Codecov入门

作者头像
triplebee
发布2019-05-25 19:50:31
1.8K0
发布2019-05-25 19:50:31
举报
文章被收录于专栏:计算机视觉与深度学习基础

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1433286

【开源项目利器】利用Travis持续集成与Codecov测试覆盖率构建自动化测试环境,提升Github项目逼格。

始于颜值,陷于才华

测试对于一个项目的重要性是不言而喻的,而小的开源项目往往难以配备专门的测试团队,频繁的push代码会使得本就缺乏人手的测试难上加难,因而构建自动化测试环境对于小型开源项目十分有必要!

坦白说,我是一个先看脸的人,在不了解Travis和Codecov是做什么的时候,我学习他们的初衷只是觉得这样的图标放在Github上比较漂(zhuang)亮(bi),然而当我弄懂了他们到底是干什么的时候,我觉得他们好胖胖哦!

Travis CI

什么是Travis CI?

Travis CI是一个托管的,分布式持续集成工具,主要用来构建和自动测试项目。当你push一段代码至github的时候,Travis会按照你预先配置的测试文件进行自动测试,并返回pass或fail的结果。

当然,我们也可以用travis来进行deploy,比如博客什么的。自动测试本质就是用机器运行一系列程序,所以可以在这些程序里加上deploy的命令达到这样的目的。比如:

代码语言:javascript
复制
hexo d -g

将其加入执行的测试script,测试主体部分pass之后会自动将博客推送上线。

如何用Travis CI?

  • 有一个github账户和托管的仓库。
  • travis官网,用github账户登陆并授权,开启自己想要用travis的仓库。
  • 在仓库中添加一个.travis.yml的配置文件,配置规则见这里,以我的MC胖虎为例,配置文件如下:
代码语言:javascript
复制
language: python
python: "3.6"

notifications:      # 邮箱通知
  email: false

sudo: false #有定制化开发环境需要,默认false,不开启容器,编译效率高

before_install: 
  - pip install tensorflow #加sudo默认系统环境里的python,使用虚拟环境需加-E参数 

install: true #跳过install

script: 
  - python main.py

before_install阶段主要安装一些系统依赖,和install区别不是很大,我个人倾向于把非requirement文件里的安装都放在before_install阶段。

  • push代码之后,travis的运行结果可以在travis网站看到。
  • 点击build passing的图标将下面这种格式的语句写入readme或其它markdown文件即可看到小图标。
代码语言:javascript
复制
[![Build Status](https://travis-ci.org/hjptriplebee/Chinese_poem_generator.svg?branch=master)](https://travis-ci.org/hjptriplebee/Chinese_poem_generator)
  • 点击trigger build可以在线调试

Codecov

什么是Codecov?

Codecov是一个测试结果分析工具,travis负责执行测试,Codecov负责分析测试结果,最简单的用法就是衡量测试代码覆盖度,当然更高端的用法还有待继续学习。依赖于travis,Codecov非常简单就能上手。

如何用Codecov?

  • Codecov官网用github账号登陆并授权,选择要分析的仓库。
  • 修改.travis.yml文件如下:
代码语言:javascript
复制
language: python
python: "3.6"

notifications:      # 邮箱通知
  email: false

sudo: false #有定制化开发环境需要,默认false,不开启容器,编译效率高

before_install: 
  - pip install tensorflow #加sudo默认系统环境里的python,使用虚拟环境需加-E参数 
  - pip install codecov 
  - pip install coverage

install: true

script: 
  - coverage run main.py

after_success:
  - codecov #运行codecov

主要区别在于install了codecov和coverage,coverage不是必须的,也可以用nosetests等取代,运行脚本的时候指定使用coverage生成报告,结束后指定codecov上传测试分析报告。codecov也可以有自己独立的配置文件,可以指定忽略哪些模块等,详见手册

  • travis测试pass之后,一份测试报告将上传至这里并可视化显示出来,点进去可查看详细报告。

MC胖虎有训练,普通写诗,藏头诗三个部分,而默认main只执行了普通写诗部分,所以其余两个部分有一些代码未测试,测试覆盖率报告为63%。通过编写更完整的测试脚本,可以同时测试三个部分,将覆盖率提升。

  • 点settings->badge,将下面这种格式的语句写入readme或其它markdown文件即可看到小图标。
代码语言:javascript
复制
[![codecov](https://codecov.io/gh/hjptriplebee/Chinese_poem_generator/branch/master/graph/badge.svg)](https://codecov.io/gh/hjptriplebee/Chinese_poem_generator)

最终效果如下:

结束

以上就是travis和codecov的一些基本用法,算是快速入门吧。还有一些复杂的用法需要今后不断学习。

Bonus

其它github小图标,类似这种:

可以从这里获取。

原文地址:点击这里

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年05月22日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 始于颜值,陷于才华
  • Travis CI
    • 什么是Travis CI?
      • 如何用Travis CI?
      • Codecov
        • 什么是Codecov?
          • 如何用Codecov?
          • 结束
          • Bonus
          相关产品与服务
          持续集成
          CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档