• (二) 关于配置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 赶紧动手试试。。。不扯废话了 披萨要冷了:)

  • 相关阅读:
    Selenium简单测试页面加载速度的性能(Page loading performance)
    Selenium Page object Pattern usage
    Selenium如何支持测试Windows application
    UI Automation的两个成熟的框架(QTP 和Selenium)
    分享自己针对Automation做的两个成熟的框架(QTP 和Selenium)
    敏捷开发中的测试金字塔(转)
    Selenium 的基础框架类
    selenium2 run in Jenkins GUI testing not visible or browser not open but run in background浏览器后台运行不可见
    eclipse与SVN 结合(删除SVN中已经上传的问题)
    配置Jenkins的slave节点的详细步骤适合windows等其他平台
  • 原文地址:https://www.cnblogs.com/piperck/p/5116277.html
Copyright © 2020-2023  润新知