基于travis-ci的单元自测

2017-07-26  本文已影响0人  lewzylu

1、travis-ci简介

Travis CI 是目前新兴的开源持续集成构建项目,它与jenkins,GO的很明显的特别在于采用yaml格式,简洁清新独树一帜。目前大多数的github项目都已经移入到Travis CI的构建队列中,据说Travis CI每天运行超过4000次完整构建。

2、基本设置

https://travis-ci.org/

在travis-ci上登录你的github帐号,在仓库设置中将需要测试的仓库打勾

在通用设置中这样设置


3、测试流程

3.1 nose介绍

使用Python开发的估计都知道unittest,与Java中的JUnit一样,编写测试用例需要遵守一定的规则。而nose继承自unittest,且比unittest更容易使用。
官网:https://nose.readthedocs.org/en/latest/index.html

3.2 使用指南

3.2.1 安装

pip install nose

3.2.2#本地测试

在你的根目录下新建一个test开头的py文件,并在这个文件中新建setUp,tearDown和一堆Test开头的函数。

# -*- coding=utf-8
def setUp():
    print "start test"


def tearDown():
    print "function teardown"


def Test1():
    rt = function1()
    assert rt == 200


def Test2():
    rt = function2()
    assert rt == 200

并在当前目录下执行命令

nosetests

或者加上一些参数。
nose就会以setUp => Test1 => Test2 => ... => tearDown的顺序开始测试 。

3.3 nose+travis-ci

在根目录下新建 .travis.yml 文件

sudo: false
language: python

python:
  - "2.6"
  - "2.7"

install:
    - pip install requests
    - pip install nose
    - pip install pep8
    
script:
    - pep8 --max-line-length=180 qcloud_cos/.
    - nosetests -s

sudo

是否使用管理员权限

language

搭建哪一种语言的环境

python

选择哪一种版本的python

install

使用pip安装测试需要用的的库

script

选择运行的测试命令

提交测试文件

将.travis.yml 和 test.py提交到你的仓库中,这样一来travis-ci的集成测试就部署完了,之后你的每一次提交或修改,travis-ci都能实现单元测试,并反馈结果,效果如下:

每一个分支每一次提交都会测试 查看测试日志1 查看测试日志2

4、附录

由于测试,肯定会涉及到一些帐号密码或者密钥之类不好公开的东西
travis-ci也提供了加密的方法,就是将明文密钥设置为环境变量
在setting中找到如下的位置



将你想要设置环境变量填入,然后在test文件中调用设置好的环境变量即可
比如在python中

import os
ACCESS_ID = os.environ["ACCESS_ID"]
ACCESS_KEY = os.environ["ACCESS_KEY"]

这样就能在一定程度上对密钥进行加密。但是也并不能保证绝对的安全性,测试帐号请慎重考虑。

上一篇下一篇

猜你喜欢

热点阅读