Travis 提供了Continuous integration即持续集成的功能,只要代码有变更,就自动运行构建和测试,反馈运行结果。
Travis 可以绑定 Github 上面的项目,只要有新的代码更改提交,就会自动抓取,然后,构建一个运行环境,执行测试代码。
github测试项目
提高效率,一次写好测试用例就完事,以后每次push到github都会自动测试,提高软件开发的效率
点击上面的build图标可以进去Travis页面看详细的构建测试情况
###Travis使用前的准备参考阮一峰博客
我这里说一下.travis.yml文件的编写,关于go与数据库的基本配置
language: # 指明使用的语言
- go
go: # 语言版本号
- "1.x" # x表示对应前缀的最新版本
- "1.10" # 注意,需要 "1.10" 版本的时候必须表示为字符串形式,如果写成 1.10 则会使用 1.1 版本
- "1.10.x"
- master # 默认使用最新版本
script: # 执行的脚步,但是go默认会执行下面的这些命令的,所以可以不用写
- go get -v
- go test ./...
mysql绑定了127.0.0.1和3306端口,连接需要认证,用户名可以用travis或者root,密码都是空,最好用root因为权限高点
service:
- mysql
before_install: # 注意需要先创建一个与你程序运行所需要的数据库名
- mysql -e 'create database yourDB;'
很简单=。=就粘贴下面一句代码,把your_pwd替换成你的密码就可以,用户名还是root
before_script:
- echo "USE mysql;\nUPDATE user SET password=PASSWORD('your_pwd') WHERE user='root';\nFLUSH PRIVILEGES;\n" | mysql -u root
虚拟环境类型 | Ubuntu Precise | Ubuntu Trusty |
---|---|---|
Sudo-enabled | 5.5.x | 5.6.x |
Container-based | - | 5.6.x |
如果需要使用5.7版本,需要在sudo-enabled Trusty环境中,然后如下设置
addons:
apt:
sources:
- mysql-5.7-trusty
packages:
- mysql-server
- mysql-client
before_install:
- sudo service mysql restart
- mysql -e 'create database yourDB;'
因为Travis的每一个build都是运行在虚拟环境上,要么是虚拟机要么是容器,系统有Ubuntu和OS X,除了容器类型没有sudo权限,其他类型都有
我建议使用第二列的Ubuntu Trusty - Container-based,虽然不能执行sudo权限,但是构建速度快
如果你在 .travis.yml 文件使用了下面一些关键字,会默认为你选择相应的虚拟环境
导致docker环境
services: docker
或者在构建脚步中有使用docker相关命令
导致 sudo-enabled linux (Ubuntu Trusty) 环境
sudo: required 或者 sudo: true
或者在构建脚步中有使用sudo相关命令
导致OS X
os: osx
language: objective-c
或者使用其他一些macOS相关的语言或者命令
如果都没有声明上面的字段,默认提供 container-based linux (Ubunty Trusty) 环境
参考
官方文档-TravisCI 环境介绍
官方文档-TravisCI 关于database设置