美文网首页
基于travis-ci的单元自测

基于travis-ci的单元自测

作者: lewzylu | 来源:发表于2017-07-26 11:59 被阅读0次

    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"]
    

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

    相关文章

      网友评论

          本文标题:基于travis-ci的单元自测

          本文链接:https://www.haomeiwen.com/subject/okjbkxtx.html