golang CI 入门

来源:互联网 发布:数据压缩算法的程序 编辑:程序博客网 时间:2024/05/21 14:54

golang CI 入门

CI(持续集成 | Continuous Integration)是 TDD(测试驱动开发 - Test Driven Development)核心内容。本文通过最简单的案例,了解如何利用 Github 和 Travis 完成在线测试任务。

本文要点:
1. 创建带测试的项目
2. 编写自动构建脚本 .travis.yml
3. Travis 触发构建

前提条件:
1. git 客户端已安装,知道一些 git 基本命令 git 教程
2. 知道 go 项目空间,或阅读 如何使用Go编程
3. 会使用 vscode, atom 等编辑器

1、引言

Github 上好多项目都挂了如下图醒(zhuang)目(bi)的标记,是不是很高大上。

travis-ci-pass

让我们的 golang 项目也挂上它。

2、创建一个简单含测试的 go 项目

2.1 创建 Git reposity

  • 在 GitHub 上创建一个如 “golang-learning” repository(仓库)。
  • git 提示你在对应工作区 $GOPATH/src/github.com/git-user-name/repo-name ,执行如下语句。
echo "# golang-learning" >> README.mdgit initgit add README.mdgit commit -m "first commit"git remote add origin https://github.com/pmlpml/golang-learning.gitgit push -u origin master

2.2 创建项目

用 vscode 在项目中创建 test 目录,添加 hello.gohello_test.go

待测试函数 Rervise in hello.go

package test// Reverse s stringfunc Reverse(s string) string {    runes := []rune(s)    for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {        runes[i], runes[j] = runes[j], runes[i]    }    return string(runes)}

测试用例函数 TestReverse in hello_test.go

package testimport (    "testing")func TestReverse(t *testing.T) {    cases := []struct {        in, want string    }{        {"Hello, world", "dlrow ,olleH"},        {"Hello, 世界", "界世 ,olleH"},        {"", ""},    }    for _, c := range cases {        got := Reverse(c.in)        if got != c.want {            t.Errorf("Reverse(%q) == %q, want %q", c.in, got, c.want)        }    }}

在终端运行 go test

[userl@centos golang-learning]$ go test -v ./...=== RUN   TestReverse--- PASS: TestReverse (0.00s)PASSok      github.com/pmlpml/golang-learning/test  0.002s

用 Git Commit 修改并推送到 origin master

注意:最快捷的方式是 fork github.com/pmlpml/golang-learning,然后 go get 它

3、用 Travia 在线测试

3.1 管理项目版本

登陆 github 并进入你的仓库,在 Release 添加一个版本,如 v0.1

3.2 登陆 travis

进入 https://travis-ci.org 网站,它提示用 github 第三方授权 API 登陆,它会同步你 Git 上仓库。
网站提示你构建的三个步骤,如图:

ci-travis-operate

3.3 构建过程

  • 选择要构建的仓库
  • 在仓库根添加 .travis.yml 文件,内容:
language: gogo:  - tip # The latest version of Go.
  • 用 git push 提交

  • 在 travis-ci 上,点 golang-learning 连接,就看见由于提交触发的构建过程。

3.4 将构建图标加入README.MD

详细操作见:Github装逼指南——Travis CI 和 Codecov

4、小结

  1. 构建脚本 .travis.yml 非常简单。Travis 网站就是用一个 Unbutu Linux 容器构建你的项目的。 更多参考:Setting up a Travis-CI pipeline for Golang
  2. 构建过程非常重要,请自己在 Travis-CI 控制台查阅构建日志
  3. 每日构建,是团队开发的质量保证
原创粉丝点击