travis CI + coveralls
travis CI
travis CI 是一个托管的分布式持续集成服务,用来构建并测试托管在Github上的软件项目,其中 CI 就是持续集成(continuous integration)的缩写。持续集成是在小代码变更中频繁合并的实践,而不是在开发周期结束时在大变更中合并。
为什么要使用 travis ?
它可以让你明白自己的项目在一个“空白环境”中,是否能正确运行;也可以让你知道,用不同的 Node.js 版本运行的话,有没有兼容性问题。
travis 默认带有的那些依赖,都是每个用户的机器上都会有,所以一旦你的项目在 travis 上面能够跑通,那么就不用担心别的用户安装不上。
作用:
- Travis CI通过自动构建和测试代码结果来支持开发过程,为代码变动提供即时反馈;
- CI,每次 PR 的代码,都要通过代码格式检查和单元测试;
- 将构建和测试,在一次运行中执行完成。
使用条件:
travis CI 只支持 Github,不支持其他代码托管服务。这意味着,你必须满足以下条件,才能使用 Travis CI:
- 拥有 GitHub 帐号
- 帐号下面有一个项目
- 项目里面有可运行的代码
- 项目还包含构建或测试脚本
travis 要求项目的根目录下面,必须有一个.travis.yml文件。这是配置文件,指定了 Travis 的行为。该文件必须保存在 Github 仓库里面,一旦代码仓库有新的 Commit,Travis 就会去找这个文件,执行里面的命令。
travis与github项目关联:
(1)在github上创建token:
登录github后设置token(用在travis环境变量设置中):settings — developer settings — personal access tokens (勾选repo)
注意:务必要复制
(2)进入 Travis-ci.com 并用github账户来登录;
(3)接受 Travis CI 的授权,就会被重定向到github;
(4)点击激活按钮,选择你想使用Travis CI 的github项目;
(5)设置环境变量:自定义名称、github_token
变量名:token(用在.travis.yml配置中)
(6)给你的项目添加一个 .travis.yml 文件,提交这个文件到你的github仓库。
.travis.yml的配置:
- language——运行环境
- node版本——用不同的 Node.js 版本运行的话,注意兼容性问题
- install命令——用来指定安装脚本(默认值:npm install )
- cache——缓存
- script——用来指定构建或测试脚本(默认值:npm test )
- after_script——上传测试报告至coveralls
- windows与Mac的区别:os——如果有需要在macOS上运行的测试,或者项目使用Swift或Objective-C,使用macOS环境: os: osx
language: node_js #指定运行环境
node_js:# - '12'# - '10'- '8'# - '6'# - '4'install:- npm install --save-dev jest- npm install coveralls --save-devcache:directories: node_modules #缓存node_modules文件script:- npm run coverallsafter_script:- cd ./public- git init- git config user.name "WangJuYan"- git config user.email "1411460132@qq.com"- git add .- git commit -m "update"- git push --force --quiet "https://${github_token}@${GH_REF}" - cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js -repotoken IpUW3kFRlfOij9cYPGF82SmJFz1q9Bbgxbranches:only:- master #触发持续集成的分支env:global:- GH_REF: github.com/WangJuYan/wjyTest.git #仓库地址os: osx
运行状态:
Travis 每次运行,可能会返回四种状态:
- passed:运行成功,所有步骤的退出码都是0
- canceled:用户取消执行
- errored:有非零退出码,运行会立即停止
- failed :script有非零状态码 ,会继续运行
travis运行结果:
README.md文件中设置徽章
[![Build Status][travis-image]][travis-url]
[travis-url]: https://www.travis-ci.org/WangJuYan/wjyTest
[travis-image]: https://www.travis-ci.org/WangJuYan/wjyTest.svg?branch=master
coveralls
coveralls是一个检测代码单元测试覆盖率的工具,能方便的集成github ,可以从Travis CI跑的结果统计出单元测试对代码的覆盖率。
与GitHub绑定设置:
(1)进入 coveralls 并用github账户来登录;
(2)接受 coveralls 的授权,就会被重定向到github;
(3)点击激活按钮,选择你想使用coveralls测试的github项目;
(4)获取 repotoken,用在.travis.yml配置中。
基本应用:
运行测试:
jest --coverage
获取token,与travis关联
after_script:
- cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js -repotoken 7cRO6F7KccTCqDdDtXctp4aXnqveU8OqU
README.md设置徽章——覆盖率(coverage)
[![Coverage Status][coveralls-image]][coveralls-url]
[coveralls-url]: https://coveralls.io/github/WangJuYan/wjyTest?branch=master
[coveralls-image]: https://coveralls.io/repos/github/WangJuYan/wjyTest/badge.svg?branch=master
travis CI + coveralls相关推荐
- Travis CI : 最小的分布式系统(三)
日志的作用有两个:当构建日志的数据块通过消息队列进来时,更新数据库对应行,然后推送它到Pusher用于实时的用户界面更新. 日志块以流的形式在同一个时间从不同的进程中进来,然后被一个进程处理.这个进程 ...
- Travis CI : 最小的分布式系统(二)
大约1年之前,我们发现当时的架构有些不合理了.尤其是Hub,它上面承担了太多的任务.Hub要接收新的处理请求,处理并推动构建日志,它要同步用户信息到Github,它要通知用户构建是否成功.它跟一大群外 ...
- Travis CI : 最小的分布式系统(一)
(本文翻译自http://www.paperplanes.de/2013/10/18/the-smallest-distributed-system.html,由@金斌_jinbin 翻译) Trav ...
- travis-ci自动部署_如何使用Travis CI部署(几乎)零恐惧的Cloud Foundry应用
travis-ci自动部署 by Robin Bobbitt 罗宾·波比(Robin Bobbitt) 如何使用Travis CI部署(几乎)零恐惧的Cloud Foundry应用 (How to d ...
- travis ci_如何使用Travis CI和GitHub进行Web开发工作流程
travis ci by Vijayabharathi Balasubramanian 通过Vijayabharathi Balasubramanian 如何使用Travis CI和GitHub进行W ...
- Flutter GitHub Travis CI 搭建
通过 Travis CI 连接 GitHub 上的 Flutter 项目, 实现持续集成: 代码扫描, 测试, 打包发布 release. Install Android SDK os: linuxl ...
- 利用Travis CI 让你的github项目持续构建(Node.js为例)
Travis CI 是目前新兴的开源持续集成构建项目,它与jenkins,GO的很明显的特别在于采用yaml格式,简洁清新独树一帜.目前大多数的github项目都已经移入到Travis CI的构建队列 ...
- Travis CI mysql_DevOps工具介绍连载(34)——Travis CI
原标题:DevOps工具介绍连载(34)--Travis CI Travis CI 持续集成 Travis CI 是在线托管的持续集成服务,绑定Github项目,抓取新的代码自动进行测试构建,甚至自动 ...
- Travis CI + github + hexo 自动化部署
Travis CI是目前新兴的开源持续集成构建项目,采用yaml格式,简洁清新独树一帜.目前大多数的github项目都已经移入到Travis CI的构建队列中.Travis-CI会同步你在GitHub ...
最新文章
- 我所理解的UTF-8和GBK
- Android常见面试题
- 【技术短文】基于深度负相关学习的人群计数方法
- [js高手之路]深入浅出webpack教程系列9-打包图片(file-loader)用法
- ORACLE TEXT LEXER PREFERENCE(一)
- 100. Same Tree 相同的树
- 人生苦短,Python之父要解开这个困惑
- java调用app接口代码_java servlet手机app访问接口(二)短信验证
- 存储如何让文件小一点_如何使用Redis接管文件存储
- IEEE ISO/IEC简介
- matlab插值函数 外插,Matlab数据插值-内插、外插
- fxp连接失败_flashfxp连接提示连接失败 (10061: 连接被拒)与列表错误
- JS特效一:图片轮播图(JS必须掌握的特效)
- 高端化自欺欺人,国产手机又一块遮羞布被扯下,事实是被苹果碾压
- linux code lite编译c,CentOS 6.2编译安装CodeLite 5.3
- pointer-events: none;属性。pointer-events: none;看得见摸不着,点击穿透。
- 【下载】DE2、DE2-70、DE1光盘资料
- SpringCloud(3)--服务熔断降级
- 教你如何学模电——三极管篇
- 工作迷茫,想换工作了!
热门文章
- VC实现的简易防火墙
- 2012年2月4日彙報Axure RP Pro 6.5 Beta正體中文加強測試版進展
- 【KEIL MDK使用AStyle程序格式化操作】
- java自动代码生成
- python写的脚本怎么用,如何用python写脚本
- Unity2d游戏开发日志(菜只因版)-2月1日-视差
- 《电机学》绪论 电机学概述——电(电路与磁路)、机(机械) 四要素:原理、结构、特性、应用
- python语言程序设计实践教程答案实验六_Python语言程序设计实验指导与习题--详细介绍...
- 语音备忘录怎么添加录音
- 用手机怎么查看网页的源代码0