专栏首页计算机视觉与深度学习基础Github美化-Travis与Codecov入门

Github美化-Travis与Codecov入门

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012614906/article/details/80405930

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

始于颜值,陷于才华

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

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网站看到。

- 点击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是一个测试结果分析工具,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之后,一份测试报告将上传至这里并可视化显示出来,点进去可查看详细报告。

MC胖虎有训练,普通写诗,藏头诗三个部分,而默认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)

最终效果如下:

结束

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

Bonus

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

可以从这里获取。

原文地址:点击这里

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Leetcode 282. Expression Add Operators

    Given a string that contains only digits 0-9 and a target value, return all pos...

    triplebee
  • Leetcode 237. Delete Node in a Linked List

    Write a function to delete a node (except the tail) in a singly linked list, gi...

    triplebee
  • Leetcode 282. Expression Add Operators

    Given a string that contains only digits 0-9 and a target value, return all pos...

    triplebee
  • 波士顿动力十年对比刷屏,网友:以后该不会变成终结者吧?

    波士顿动力的机器人,主要有三款机型:人形机器人Atlas、机器狗Spot,以及双轮机器人Handle。

    量子位
  • 低版本中mysql不支持在limit语句中有子查询

    select * from  exec_activity_effect_day oe where oe.ACTIVITY_ID  in   (select  D...

    汤高
  • 【干货】浅尝TensorFlow on Kubernetes

    TensorFlow github 70K+ stars, Kubernetes github 27K+ stars, 两个都是在各自领域的霸主,本文从Tens...

    杨振涛
  • Jeff Dean谈2020ML:专用芯片、多模态多任务学习,社区不用痴迷SOTA

    这一次的 NeurIPS 大会,Jeff Dean 很忙。他谈了机器学习领域的很多话题,包括谈论机器学习如何应对气候变化,以及机器学习如何重塑系统和半导体等人们...

    机器之心
  • Android短视频边下边播详解

    短视频作为一种常见的富媒体信息载体已经在移动互联网上得到非常普遍的应用,比如Snapchat、微信、手Q日迹等。由于手机网络流量珍贵且带宽有限,应用通常不会直接...

    MelonTeam
  • 前端三大宝的作用

    行云博客
  • 边缘云计算标准化需求与建议

    去年底,中国电子技术标准化研究院、阿里云等单位共同编制并发布了一份《边缘云计算技术与标准化白皮书》,定义了边缘云计算的概念和标准等,白皮书篇幅略长,边缘计算社区...

    边缘计算

扫码关注云+社区

领取腾讯云代金券