Travis Ci 让你的项目轻松加入持续集成测试

Python七号

共 2369字,需浏览 5分钟

 ·

2022-03-16 13:24

不知道大家有没有这种体验,代码写完之后,要花大量的时间进行构建和测试,就拿 Python 来说吧,写完代码后,编写测试用例,准备测试环境,执行测试,完成构建,部署到服务器。

后面每改动一次代码,都要准备测试环境,执行测试,完成构建,部署到服务器,执行这一系列过程,相当耗时,尤其是在多个 Python 版本间进行测试时,简直就是体力活。

不过,现在这个问题不存在了,只要你会用 Travis Ci 这个持续集成工具。

Travis Ci 是一个基于云的, 绑定 GitHub 上的项目后,只要有新的代码提交,就会自动执行测试,完成构建,部署到服务器这一系列重复枯燥的过程,每次代码的小幅变更,我们就能很快看到运行结果,从而不断累积小的变更。这种及时反馈可以大大提升开发效率。

比如我有一个 GitHub 仓库,里面写好了单元测试,然后修改了代码之后提交到 GitHub,很快就可以看到构建的结果是 pass 还是 failed:

当然,这个过程是需要我们配置的。

接下来分享下如何简单的使用 Travis Ci ,工具是开源免费的。

1、前提条件

你需要在代码托管平台有一个项目,或者叫仓库,英文 repositories。

代码托管平台目前支持 GitHub、Bitbucket、GitLab、Assembla。

你是仓库的所有者。

2、为仓库编写配置文件

仓库[1]的根目录添加一个 .travis.yml 配置文件,来告诉 travis-ci 做什么。

比如我这里的一个 .travis.yml 配置文件如下所示:

language: python
python:
  - "3.7"
  - "3.8"
  - "3.9"

# command to install dependencies
#install:
#  - pip install tox
# command to run tests
script:
  - python setup.py sdist bdist_wheel
notifications:
  email:
    recipients:
      - somenzz@163.com
    on_success: change
    on_failure: always

上面代码中:

  • language 字段指定了编程语言,目前支持大部分主流编程语言
  • python 设定使用 Python 环境的版本
  • script 字段指定要运行的脚本,如果 script: true 表示不执行任何脚本,状态直接设为成功

如果有多个脚本,可以写成下面的形式:

script:
  - command1
  - command2

如果 command1 失败,command2 会继续执行。但是,整个构建阶段的状态是失败。如果 command2 只有在 command1 成功后才能执行,就要写成这样 script: command1 && command2

  • notifications 就是通知了,script 执行失败的话发邮件通知

还有 install 命令我注释掉了,该字段用来指定安装依赖,如果有多个命令要执行,可以写成下面的形式。

install:
  - command1
  - command2

上面代码中,如果 command1 失败了,整个构建就会停下来,不再往下进行。如果不需要安装,即跳过安装阶段,就直接设为true。

配置文件之前,我们需要自己本地执行一下 script 里面的命令,没有问题时再提交 .travis.yml 进行下一步。

2、登录 travis-ci,监听这个项目

访问 https://app.travis-ci.com/signin 并使用一个平台账号登录:

以 GitHub 为例,登进去后,我们会看到自己的仓库列表。

选择仓库前面的小圆圈,激活该仓库。

这里看到 dbinterface 已经激活了,点击进去,可以查看提交、构建的情况,只有我们 git push 这个仓库,就会自动构建,也可以点击按钮重新构建。

点击下方的构建条目可以看到详细的日志:

3、其他骚操作

script 阶段结束以后,除了设置通知步骤(notification)还可以进行部署(deployment)比如,要部署到 Github Pages,可以写成下面这样。

deploy:
  provider: pages
  skip_cleanup: true
  github_token: $GITHUB_TOKEN # 在 travis-ci.com 面板设置
  on:
    branch: master

其他部署方式,请看官方文档[2]

不过 GitHub Actions 更为方便,可以查看前文:GitHub Actions入门教程:自动化部署静态博客

最后的话

如果你是 Github 的爱好者,那么 Travis 绝对值得一试。如果觉得本文有帮助,还请点个在看,感谢老铁支持。

扫码关注


推荐阅读

Travis Ci 官网提供的教程 Python[3]

与 coveralls 的不解之缘

参考资料

[1]

仓库: https://github.com/somenzz/dbinterface

[2]

官方文档: https://docs.travis-ci.com/user/deployment/

[3]

Travis Ci 官网提供的教程 Python: http://docs.travis-ci.com/user/languages/python/


浏览 55
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报