(二) 关于配置travis-ci持续集成python pytest测试的相关记录
接上篇
上篇只是非常官方的描述了一下travis-ci是包括了些什么部分会如何工作但是并没有深入介绍也没有写demo。
这里先贴上一个我已经测试好了的python_travis-ci的环境
https://github.com/piperck/flask_pytest_demo#flask_pytest_demo
只要clone这个仓库,并且发pr上来就可以发现,ci就会开始集成,测试和集成内容都由配置脚本配置完成,在这个demo里现在。我只是配置了几个最简单的测试脚本,并且把他们都跑通了。
从上图可以看到,travis-ci在他的持续集成服务器上测试你写在测试目录下的程序。
现在就去看看这个demo的核心配置文件 .travis.ymls到底写了些什么
language: python python:- "2.7" # command to install dependencies install:- pip install flake8 flake8-respect-noqa pre-commit # command to run tests script:- make test
首先申明了我使用的是python语言 然后申明一下我使用的版本。
这里install 就是在跑集成之前需要哪些依赖?你需要把她们都安装好。有个更不错的办法就是你提供一个需要安装的列表。这样的话travis-ci会根据这个列表把所有需要的依赖都给安装上。这样的话你程序有任何第三方依赖都不会出问题。是不是很棒?
然后是script 也就是测试单元 这里我使用了一条 make test 的make命令。这个时候就要去看Makefile文件里面写了什么
test:ci/run_tests.sh
很简单的一条 test 是一个文件路径,也就是告诉ci去这个文件里找吧 我们再去看看run_tests.sh里我写了什么
#!/usr/bin/env bash # Run tests# echo path echo $DIR, `pwd`# execute specified tests py.test -x -vv -s `pwd`/tests/
首先申明可以直接运行, 然后打印一下运行路径。 最后使用python 的py.test单元测试框架 执行命令并找到对应需要测试的路径 这样 ci就会开始在集成服务器上开始测试这些脚本到底能不能正确的通过验证。
这里只是展示了一个最最最简单的demo,到后面我可能会介绍道更复杂的使用和更复杂的集成。 虽然这个demo很简单,如果用我们人工来进行测试,其实也就是在测试框架下面把那四个文件跑了就行了。这看上去比这样折腾要简单多了,为什么还需要持续集成这种东西? 试想一下 如果我们需要测试的脚本分布在各个模块下这些东西管理的人都不一样,然而这些代码每天都在被人进行无数改动。每一次改动,都需要保证应用还是可以正常运行。一旦这个量变得大起来无疑就不可能再使用人力再手动去维护。有了travis-ci这种东西。每次你提交代码都能自动帮你测试最新的代码是否还满足以前测试用例。大大降低出错的可能性。保证了软件更高的可用性,降低了人力成本这样想是不是很美妙?? hh 赶紧动手试试。。。不扯废话了 披萨要冷了:)
(二) 关于配置travis-ci持续集成python pytest测试的相关记录相关推荐
- (一) 关于配置travis-ci持续集成python pytest测试的相关记录
首先由于公司用上了高大上的travis-ci商用版,一直想试着学学弄弄看.现在要写openapi的相关测试,而且要在travis-ci上集成.我就想体验一下这个过程.所以自己弄了一个public的仓库 ...
- CI持续集成系统环境---部署gerrit环境完整记录
转载自: http://www.cnblogs.com/kevingrace/p/5624122.html 开发同事提议在线上部署一套gerrit代码审核环境,废话不多说,部署gerrit的操作记录如 ...
- CI持续集成系统环境---部署Gitlab环境完整记录
2019独角兽企业重金招聘Python工程师标准>>> Gitlab是一个代码托管平台,在实际工作中,对代码管理十分有用.废话不多说,下面是对我自己搭建的Gitlab环境做一记录: ...
- CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接
原文地址https://www.cnblogs.com/kevingrace/p/5651447.html 近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更 ...
- [原创]CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接
近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更多的人在说协同开发.敏捷开发.迭代开发.持续集成和单元测试这些拉风的术语.然而,大都是仅仅听到在说而已,国内 ...
- CI -持续集成及相关概念
Continuous Integration, Continuous delivery, Continuous Delopment CI - 持续集成(Continuous Integration)是 ...
- 劈荆斩棘:Gitlab 部署 CI 持续集成
阅读目录: install configue gitlab-ci-multi-runner restore nuget packages bulid .sln run unit tests confi ...
- 在CentOS7上安装Drone搭建CI持续集成环境
文章目录 在CentOS7上安装Drone搭建CI持续集成环境 前言 安装前规划 安装过程 配置域名解析 安装Docker 拉取Drone Server镜像 添加GitHub OAuth Applic ...
- CI持续集成系统环境---部署Jenkins完整记录
最近在看CI/CD集成的相关部分,发现几篇好文,转载分享一波. 来源网络:[原创]CI持续集成系统环境---部署Jenkins完整记录 - 散尽浮华 - 博客园 Jenkins通过脚本任务触发,实现代 ...
最新文章
- 自学python需要买书吗-Python入门到精通学习书籍推荐!
- 1.21 方法的可变参数(String...names)
- 手动造轮子——为Ocelot集成Nacos注册中心
- 手机modem开发(8)---TS 系列规范总结
- Redis 源码分析之故障转移
- jenkines的工作区目录位置查找
- javax包 rpc_javax.xml.rpc和javax.wsdl分别属于哪个jar包?
- 002 离散时间傅里叶分析
- android 切换语言不起作用,Android 语言切换实例及踩坑
- SparkSQL Analyzed实例源码解析
- 天霆:桌面虚拟化正处于导入期
- 计算机网络学习笔记3-ARP+广播风暴
- gmap mysql cachet_MySQL中binlog cache使用流程解惑
- QML之Canvas实现标尺(刻度尺)方案
- offsetParent与parentElement ,parentNode,parentElement,childNodes和children
- 苹果11计算机怎么打开语音,iPhone11怎么打开Siri 语音唤醒方法介绍
- bcftools的功能介绍
- 同一个html自动跳转分页,PageMenu分页控制器(基础篇)-相同分页页面的实现
- EtherCAT设备协议详解一、EtherCAT概述
- 萍果8html5测试跑分,iPhone 8/8 plus跑分测试结果出炉 打爆众多竞争对手
热门文章
- 求求你别再用 System.out.println 了!!
- 让机器“看见”:图像数据的特征提取方法
- 数据缺失、混乱、重复怎么办?最全数据清洗指南!
- 深度学习不work?这有一份超全的Debug检查清单
- 兰大本科生发31篇论文遭质疑,本人及校方回应!
- 全栈工程师15年经验分享:40个改变编程技能的小技巧
- 机器学习笔记:概率图模型
- 牛X,试用了下 GitHub 上 2 万 Star 的第一抢票神器,3 秒钟抢到!
- 27 个问题,告诉你 Python 为什么如此设计?
- 推荐一位Python终生学习者!本科期间用Python赚了10w+!