接上篇

上篇只是非常官方的描述了一下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测试的相关记录的更多相关文章

  1. (一) 关于配置travis-ci持续集成python pytest测试的相关记录

    首先由于公司用上了高大上的travis-ci商用版,一直想试着学学弄弄看.现在要写openapi的相关测试,而且要在travis-ci上集成.我就想体验一下这个过程.所以自己弄了一个public的仓库 ...

  2. Ubuntu Docker 安装和配置 GitLab CI 持续集成

    相关文章: Ubuntu Docker 简单安装 GitLab 劈荆斩棘:Gitlab 部署 CI 持续集成 目的:在 Ubuntu 服务器上,使用 Docker 安装和配置 GitLab Runne ...

  3. Travis CI持续集成使用

    用好这个工具不仅可以提高效率,还能使开发流程更可靠和专业化,从而提高软件的价值.而且,它对于开源项目是免费的,不花一分钱,就能帮你做掉很多事情. 一.什么是持续集成? Travis CI 提供的是持续 ...

  4. github Travis CI 持续集成

    一个项目如何保证代码质量是开发中非常重要的环节,对于开源项目来说更是如此,因为开源项目要面对的是来自不同水平开发者提交的代码.所以围绕开源做持续集成(Continuous Integration)变得 ...

  5. [原创]CI持续集成系统环境---部署gerrit环境完整记录

    开发同事提议在线上部署一套gerrit代码审核环境,不用多说,下面就是自己部署gerrit的操作记录. 提前安装好java环境,mysql环境,nginx环境 测试系统:centos6.5 下载下面三 ...

  6. [原创]CI持续集成系统环境---部署Gitlab环境完整记录

    Gitlab是一个代码托管平台,在实际工作中,对代码管理十分有用. 废话不多说,下面是对我自己搭建的Gitlab环境做一记录: (1)安装 ------------------------------ ...

  7. [原创]CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接

    近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更多的人在说协同开发.敏捷开发.迭代开发.持续集成和单元测试这些拉风的术语.然而,大都是仅仅听到在说而已,国内 ...

  8. CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接

    原文地址https://www.cnblogs.com/kevingrace/p/5651447.html 近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更 ...

  9. GitLab CI持续集成配置方案

    目录 1. 持续集成介绍 1.1 概念 1.2 持续集成的好处 2. GitLab持续集成(CI) 2.1 简介 2.2 GitLab简单原理图 2.3 GitLab持续集成所需环境 2.4 需要了解 ...

随机推荐

  1. firewalld

    1.查看firewalld防火墙自带的区域名 [root@web ~]# firewall-cmd --get-zones block dmz drop external home internal ...

  2. iptables四表五链及默认规则使用,

    网络基础 TCP/IP模型: 应用层===传输层===网络层===数据链里层===物理层 数据封装: MAC帧头+IP报头+TCP/UDP报头===HTTP请求 数据帧 TCP/UDP报头: 随机产生 ...

  3. mybatis多数据源切换

    文章转自https://yq.aliyun.com/articles/188540?t=t1 https://www.liaoxuefeng.com/article/00151054582348974 ...

  4. Keil5 如何安装STM32 芯片包

    http://www.keil.com/dd2/Pack/  从该网址下载 相应芯片的PACK 包

  5. C语言的基本数据类型

     代码如下: // text.cpp: 定义控制台应用程序的入口点. // #include "stdafx.h" int main() { int a; //告诉编译器,分配 4 ...

  6. [02] Spring主要功能模块概述

    1.Spring主要功能模块   1.1 Core Container Spring的核心容器模块,其中包括: Beans Core Context SpEL Beans和Core模块,是框架的基础部 ...

  7. Linux集锦

    一:Linux文件系统 Linux系统有一个重要概念:一切都都式文件. Linux支持五种文件类型: Linux的目录结构如下: 常见目录说明: /bin: 存放二进制可执行文件(ls,cat,mkd ...

  8. AT3611 Tree MST

    题面 题解 考虑最小化\(dis(x, y)\) 这里需要对一种奇怪的最小生成树算法:Boruvka算法有深刻的理解. 考虑该算法的执行过程,我们可以考虑进行点分治,每次找到离分治重心最近的点,然后将 ...

  9. Python 学习 第八篇:函数2(参数、lamdba和函数属性)

    函数的参数是参数暴露给外部的接口,向函数传递参数,可以控制函数的流程,函数可以0个.1个或多个参数:在Python中向函数传参,使用的是赋值方式. 一,传递参数 参数是通过赋值来传递的,传递参数的特点 ...

  10. Python 学习 第七篇:函数1(定义、调用和变量的作用域)

    函数是把一些语句集合在一起的程序结构,用于把复杂的流程细分成不同的组件,能够减少代码的冗余.代码的复用和修改代码的代价. 函数可以0个.1个或多个参数,向函数传递参数,可以控制函数的流程.函数还可以返 ...