接上篇

上篇只是非常官方的描述了一下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. rman restore spfile from backup

    spfile一般在$ORACLE_HOME/dbs(linux)目录,如果你丢失了spfile并不会引起实例立刻停掉,你的实例可以继续操作,尽管当你restore spfile的时候需要关闭重启实例, ...

  2. Linux下DHCP服务安装配置

    简介 安装配置 一.简介 DHCP (Dynamic Host Configuration Protocol,动态主机管理协议)是一种基于UDP协议且仅限用于局域网的网络协议,主要用途是为局域网内部设 ...

  3. 常用gcc选项

    <Linux GCC常用命令> Makefile有三个非常有用的变量.分别是$@,$^,$<代表的意义分别是: $@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件 ...

  4. TerraGate软件安装后,服务无法启动的解决方法

    前些天有朋友问,TerraGate安装后,服务无法启动,而且启动按钮也是不可用的状态,不知道是为什么,如下图: 打开TerraGate的安装目录,发现里面缺少一些文件,如下图: *解决办法: 重新安装 ...

  5. TCP/IP协议---广播和多播及IGMP协议

    老板找某个高层谈话,这是一对一形式.当老板叫来所有高层谈话,那么就变为了一对多.计算机网络中也是如此,当一个主机需要和更多机器对话时,就有了广播和多播这种形式. 广播和多播仅应用于UDP,它们对需将报 ...

  6. JaxbUtil转json转XML工具类

    json转换为XML工具类 package com.cxf.value; import org.springframework.util.StringUtils; import javax.xml.b ...

  7. mvn打包到私服的命令

    1.mvn clean package install -Dmaven.test.skip=true deploy 2.docker清楚Nexus私服上包的命令: a) docker exec -it ...

  8. 实现Repeater控件的记录单选

    有朋友问及,在Repeater控件中第一列放置一个RadioButton,实现对记录的单选. 下面Insus.NET想举个例子来实现与说明. 为Repeater控件准备数据: 在ASPX网页上,写好R ...

  9. ES6入门之let、cont

    一.前提 解决ES5中只有全局作用域和函数作用域,没有块级作用域而带来的不合理的场景. let 基本用法 用法和var 一样,只是let声明的变量只有在let命令所在的代码块有效 { let a = ...

  10. 解决 java.net.BindException: Address already in use (Bind failed)

    这是因为tomcat未正确关闭导致的端口占用问题 找到报错中被占用的端口kill掉进程即可,一般是8080,也有下面这种8005的 11-Mar-2019 14:46:12.405 SEVERE [m ...