版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1433286
【开源项目利器】利用Travis持续集成与Codecov测试覆盖率构建自动化测试环境,提升Github项目逼格。
测试对于一个项目的重要性是不言而喻的,而小的开源项目往往难以配备专门的测试团队,频繁的push代码会使得本就缺乏人手的测试难上加难,因而构建自动化测试环境对于小型开源项目十分有必要!
坦白说,我是一个先看脸的人,在不了解Travis和Codecov是做什么的时候,我学习他们的初衷只是觉得这样的图标放在Github上比较漂(zhuang)亮(bi),然而当我弄懂了他们到底是干什么的时候,我觉得他们好胖胖哦!
Travis CI是一个托管的,分布式持续集成工具,主要用来构建和自动测试项目。当你push一段代码至github的时候,Travis会按照你预先配置的测试文件进行自动测试,并返回pass或fail的结果。
当然,我们也可以用travis来进行deploy,比如博客什么的。自动测试本质就是用机器运行一系列程序,所以可以在这些程序里加上deploy的命令达到这样的目的。比如:
hexo d -g
将其加入执行的测试script,测试主体部分pass之后会自动将博客推送上线。
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阶段。
[![Build Status](https://travis-ci.org/hjptriplebee/Chinese_poem_generator.svg?branch=master)](https://travis-ci.org/hjptriplebee/Chinese_poem_generator)
Codecov是一个测试结果分析工具,travis负责执行测试,Codecov负责分析测试结果,最简单的用法就是衡量测试代码覆盖度,当然更高端的用法还有待继续学习。依赖于travis,Codecov非常简单就能上手。
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也可以有自己独立的配置文件,可以指定忽略哪些模块等,详见手册。
MC胖虎有训练,普通写诗,藏头诗三个部分,而默认main只执行了普通写诗部分,所以其余两个部分有一些代码未测试,测试覆盖率报告为63%。通过编写更完整的测试脚本,可以同时测试三个部分,将覆盖率提升。
[![codecov](https://codecov.io/gh/hjptriplebee/Chinese_poem_generator/branch/master/graph/badge.svg)](https://codecov.io/gh/hjptriplebee/Chinese_poem_generator)
最终效果如下:
以上就是travis和codecov的一些基本用法,算是快速入门吧。还有一些复杂的用法需要今后不断学习。
其它github小图标,类似这种:
可以从这里获取。
原文地址:点击这里