(二) 关于配置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 需要了解 ...
随机推荐
- leetcode 199. Binary Tree Right Side View 、leetcode 116. Populating Next Right Pointers in Each Node 、117. Populating Next Right Pointers in Each Node II
leetcode 199. Binary Tree Right Side View 这个题实际上就是把每一行最右侧的树打印出来,所以实际上还是一个层次遍历. 依旧利用之前层次遍历的代码,每次大的循环存 ...
- ARM汇编语言基础
ARM 与 Thumb 寄存器对应关系 PC寄存器: ARM状态为R15,Thumb状态为PC LR寄存器: ARM状态为R14,Thumb状态为LR SP寄存器: ARM状态为R13,Thumb状态 ...
- PAT A1122 Hamiltonian Cycle (25 分)——图遍历
The "Hamilton cycle problem" is to find a simple cycle that contains every vertex in a gra ...
- 原生js函数的伪重载
一.我们在学习java的时候,其中方法有一个比较的重要的特性重载,根据传入的参数的个数来执行不同的方法,而方法其根据签名来判断,而JavaScript却不能根据方法的签名来进行重载,只能通过参数的个数 ...
- android 通讯类资料整理
https://github.com/koush/AndroidAsync(websocket) https://github.com/loopj/android-async-http http:// ...
- android 解决ScrollView中的子布局不能够填充整个ScrollView的情况。
在开发中如果你的xml文件的跟布局是ScrollView,在ScrollView中无论你写什么样的布局,其默认情况下都是不能填充整个布局的.也就是说你的ScrollView中的子布局设置fill_pa ...
- C++11 并发指南二(std::thread 详解)
上一篇博客<C++11 并发指南一(C++11 多线程初探)>中只是提到了 std::thread 的基本用法,并给出了一个最简单的例子,本文将稍微详细地介绍 std::thread 的用 ...
- 10-(基础入门篇)MQTT介绍
https://www.cnblogs.com/yangfengwu/p/9953920.html 看到这个项目第一想法肯定需要一个服务器,所有的wifi设备和手机都去连接这个服务器,然后服务器进行信 ...
- Missing value auth-url required for auth plugin password
在控制台输入openstack相关命令时提示如下: openstack user list Missing value auth-url required for auth plugin passwo ...
- 窥看 SpringBoot 的原理与使用
一:SpringBoot的启动 1. 继承spring-boot-starter-parent项目 2. 导入spring-boot-dependencies项目依赖 二:Spring Boot 主类 ...