Travis Ci 让你的项目轻松加入持续集成测试
不知道大家有没有这种体验,代码写完之后,要花大量的时间进行构建和测试,就拿 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:pythonpython:-"3.7"-"3.8"-"3.9"#commandtoinstalldependencies#install:#-pipinstalltox#commandtoruntestsscript:-pythonsetup.pysdistbdist_wheelnotifications:email:recipients:-somenzz@163.comon_success:changeon_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:pagesskip_cleanup:truegithub_token:$GITHUB_TOKEN#在travis-ci.com面板设置on:branch:master
其他部署方式,请看官方文档[2]。
不过 GitHub Actions 更为方便,可以查看前文:GitHub Actions入门教程:自动化部署静态博客
最后的话如果你是 Github 的爱好者,那么 Travis 绝对值得一试。如果觉得本文有帮助,还请点个在看,感谢老铁支持。
扫码关注
相关阅读
-
世界热推荐:今晚7:00直播丨下一个突破...
今晚19:00,Cocos视频号直播马上点击【预约】啦↓↓↓在运营了三年... -
NFT周刊|Magic Eden宣布支持Polygon网...
Block-986在NFT这样的市场,每周都会有相当多项目起起伏伏。在过去... -
环球今亮点!头条观察 | DeFi的兴衰与...
在比特币得到机构关注之后,许多财务专家预测世界将因为加密货币的... -
重新审视合作,体育Crypto的可靠关系才能双赢
Block-987即使在体育Crypto领域,人们的目光仍然集中在FTX上。随着... -
简讯:前端单元测试,更进一步
前端测试@2022如果从2014年Jest的第一个版本发布开始计算,前端开发... -
焦点热讯:刘强东这波操作秀
近日,刘强东发布京东全员信,信中提到:自2023年1月1日起,逐步为...