Github美化-Travis与Codecov入门

632 阅读4分钟

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

始于颜值,陷于才华

测试对于一个项目的重要性是不言而喻的,而小的开源项目往往难以配备专门的测试团队,频繁的push代码会使得本就缺乏人手的测试难上加难,因而构建自动化测试环境对于小型开源项目十分有必要!
坦白说,我是一个先看脸的人,在不了解Travis和Codecov是做什么的时候,我学习他们的初衷只是觉得这样的图标放在Github上比较漂(zhuang)亮(bi),然而当我弄懂了他们到底是干什么的时候,我觉得他们好胖胖哦!
github icons

Travis CI

什么是Travis CI?

Travis CI是一个托管的,分布式持续集成工具,主要用来构建和自动测试项目。当你push一段代码至github的时候,Travis会按照你预先配置的测试文件进行自动测试,并返回pass或fail的结果。
当然,我们也可以用travis来进行deploy,比如博客什么的。自动测试本质就是用机器运行一系列程序,所以可以在这些程序里加上deploy的命令达到这样的目的。比如:

hexo d -g

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

如何用Travis CI?

  • 有一个github账户和托管的仓库。
  • travis官网,用github账户登陆并授权,开启自己想要用travis的仓库。
  • 在仓库中添加一个.travis.yml的配置文件,配置规则见这里,以我的MC胖虎为例,配置文件如下:
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网站看到。

travisUsage

  • 点击build passing的图标将下面这种格式的语句写入readme或其它markdown文件即可看到小图标。

    [![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?

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

如何用Codecov?

  • Codecov官网用github账号登陆并授权,选择要分析的仓库。
  • 修改.travis.yml文件如下:
    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之后,一份测试报告将上传至这里并可视化显示出来,点进去可查看详细报告。

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

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

最终效果如下:
github icons

结束

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

Bonus

其它github小图标,类似这种:license可以从 这里获取。

  • 本文作者: Jipeng Huang
  • 本文链接: hjptriplebee.github.io/Travis与Code…
  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!