(二) 关于配置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的仓库 ...
- Ubuntu Docker 安装和配置 GitLab CI 持续集成
相关文章: Ubuntu Docker 简单安装 GitLab 劈荆斩棘:Gitlab 部署 CI 持续集成 目的:在 Ubuntu 服务器上,使用 Docker 安装和配置 GitLab Runne ...
- Travis CI持续集成使用
用好这个工具不仅可以提高效率,还能使开发流程更可靠和专业化,从而提高软件的价值.而且,它对于开源项目是免费的,不花一分钱,就能帮你做掉很多事情. 一.什么是持续集成? Travis CI 提供的是持续 ...
- github Travis CI 持续集成
一个项目如何保证代码质量是开发中非常重要的环节,对于开源项目来说更是如此,因为开源项目要面对的是来自不同水平开发者提交的代码.所以围绕开源做持续集成(Continuous Integration)变得 ...
- [原创]CI持续集成系统环境---部署gerrit环境完整记录
开发同事提议在线上部署一套gerrit代码审核环境,不用多说,下面就是自己部署gerrit的操作记录. 提前安装好java环境,mysql环境,nginx环境 测试系统:centos6.5 下载下面三 ...
- [原创]CI持续集成系统环境---部署Gitlab环境完整记录
Gitlab是一个代码托管平台,在实际工作中,对代码管理十分有用. 废话不多说,下面是对我自己搭建的Gitlab环境做一记录: (1)安装 ------------------------------ ...
- [原创]CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接
近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更多的人在说协同开发.敏捷开发.迭代开发.持续集成和单元测试这些拉风的术语.然而,大都是仅仅听到在说而已,国内 ...
- CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接
原文地址https://www.cnblogs.com/kevingrace/p/5651447.html 近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更 ...
- GitLab CI持续集成配置方案
目录 1. 持续集成介绍 1.1 概念 1.2 持续集成的好处 2. GitLab持续集成(CI) 2.1 简介 2.2 GitLab简单原理图 2.3 GitLab持续集成所需环境 2.4 需要了解 ...
随机推荐
- Matlab中要显示数学公式或符号Latex
\rho 代表 ρ, \sigma 代表 σ \alpha α \beta β \gamma γ \delta δ \epsilon ϵ \zeta ζ \eta ...
- 模拟斗地主和学生管理系统 IO 版
1.模拟斗地主 public class PlayCards { public static void main(String[] args) { String[] color = {"黑桃 ...
- 【Codeforces 526D】Om Nom and Necklace
Codeforces 526 D 题意:给一个字符串,求每个前缀是否能表示成\(A+B+A+B+\dots+A\)(\(k\)个\(A+B\))的形式. 思路1:求出所有前缀的哈希值,以便求每个子串的 ...
- Ubuntu系统多屏幕时 触摸屏如何分屏定位
有很多的使用我们需要在Ubuntu系统中使用多屏幕的情况,但是有的时候是一个屏幕的触摸屏幕,另一个屏幕是非触摸屏幕,但是问题来了, 有的时候在触摸屏幕上点击的时候竟然在非触摸的响应,这种情况非常不友好 ...
- C#以管理员用户打开某个程序
static void Main(string[] args) { string path = @"C:\Windows\AppPatch\AppLoc.exe"; Process ...
- odoo11新开发功能模块测试指南
根据实际业务需要,我们开发了一些生产实务中一些功能模块,作为制造行业管理信息化解决方案的基础,并应部分客户需求,做了测试系统,现将测试方式公布如下: 一.测试环境 服务器地址 http://106.1 ...
- LiveCharts文档-3开始-7标签
原文:LiveCharts文档-3开始-7标签 LiveCharts文档-3开始-7标签 Label就是Chart中表示数值的字符串,通常被放置在轴的位置和提示当中. 下图中的这些字符串显示的都是标签 ...
- 设计模式:装饰模式(decorate)
还是那几句话: 学无止境,精益求精 十年河东,十年河西,莫欺少年穷 学历代表你的过去,能力代表你的现在,学习代表你的将来 废话不多说,直接进入正题: 今天学习了装饰模式,但是代码看不太懂,于是我将装饰 ...
- Oracle 社区动态、中文讲座,最佳实践
https://community.oracle.com/thread/3789691https://community.oracle.com/community/support/%E4%B8%AD% ...
- 洛谷 P4409 [ZJOI2006] 皇帝的烦恼
题目链接-> OVO 题解: 很久没有写博客了,可能是因为最近太颓废了吧. 刚刚考完期末考试,无比期盼早点外出学习,不要面对成绩,害怕. #include <cstdio> #inc ...