本文分享自天翼云开发者社区《浅谈Tox之一》,作者:Moonriver

What is tox?

tox是通用的virtualenv管理和测试命令行工具,可用于:

  1. 使用不同的Python版本和解释器检查您的软件包是否正确安装
  2. 在每个环境中运行测试,配置您选择的测试工具
  3. 充当持续集成服务器的前端,大大减少了样板文件并合并了CI和基于shell的测试。

Basic example

首先,使用pip install tox安装tox。 然后将项目以及测试环境的基本信息放入位于setup.py文件旁边的tox.ini文件中:

只需输入:tox,如上图tox.ini文件所示,即可对当前项目进行sdist打包,创建两个Python2.7和Python3.6的virtualenv环境,将sdist软件包安装到环境中,并在每个环境中进行测试。

System overview

tox大致分为以下几个阶段:

1. 配置

2. 包装(可选)

3. 环境

4. 报告

配置->打包(可选)->环境->报告

1. 配置

加载tox.ini并将其与命令行和操作系统环境变量中的选项合并。

2. 打包(可选)

通过调用python setup.py sdist创建当前项目的源代码库。

3. 环境

对于每个Tox环境执行以下操作:

环境创建——默认情况下使用virtualenv创建一个新的环境。 tox会使用环境名称(例如表示Python 2.7的py27和basepython配置值)和当前的操作系统PATH值来自动尝试查找有效的Python解释器版本。

install(可选)——安装deps配置部分中指定的环境依赖项,然后安装较早打包的源代码。 commands——以指定的顺序运行指定的命令。

4. 报告——打印出每种tox环境的结果报告:

____________________ summary ____________________

py27: commands succeeded

ERROR:   py36: commands failed

只有所有环境都成功运行了,tox才会返回退出代码0(成功)。

tox将为您解决环境隔离问题:它将删除未通过passenv指定的所有操作系统环境变量。 此外,它还将更改PATH变量,以便您的命令在当前活动的Tox环境中首先解析。 通常,路径中的所有可执行文件都可以在命令中使用,但是如果没有通过whitelist_externals明确允许,tox将发出警告。

浅谈Tox之一的更多相关文章

  1. 浅谈 Fragment 生命周期

    版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. Fragment 是在 Android 3.0 中 ...

  2. 浅谈 LayoutInflater

    浅谈 LayoutInflater 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/View 文中如有纰漏,欢迎大家留言指出. 在 Android 的 ...

  3. 浅谈Java的throw与throws

    转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...

  4. 浅谈SQL注入风险 - 一个Login拿下Server

    前两天,带着学生们学习了简单的ASP.NET MVC,通过ADO.NET方式连接数据库,实现增删改查. 可能有一部分学生提前预习过,在我写登录SQL的时候,他们鄙视我说:“老师你这SQL有注入,随便都 ...

  5. 浅谈WebService的版本兼容性设计

    在现在大型的项目或者软件开发中,一般都会有很多种终端, PC端比如Winform.WebForm,移动端,比如各种Native客户端(iOS, Android, WP),Html5等,我们要满足以上所 ...

  6. 浅谈angular2+ionic2

    浅谈angular2+ionic2   前言: 不要用angular的语法去写angular2,有人说二者就像Java和JavaScript的区别.   1. 项目所用:angular2+ionic2 ...

  7. iOS开发之浅谈MVVM的架构设计与团队协作

    今天写这篇博客是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇博客的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦 ...

  8. Linux特殊符号浅谈

    Linux特殊字符浅谈 我们经常跟键盘上面那些特殊符号比如(?.!.~...)打交道,其实在Linux有其独特的含义,大致可以分为三类:Linux特殊符号.通配符.正则表达式. Linux特殊符号又可 ...

  9. 浅谈Angular的 $q, defer, promise

    浅谈Angular的 $q, defer, promise 时间 2016-01-13 00:28:00  博客园-原创精华区 原文  http://www.cnblogs.com/big-snow/ ...

  10. 浅谈Hybrid技术的设计与实现第三弹——落地篇

    前言 接上文:(阅读本文前,建议阅读前两篇文章先) 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 根据之前的介绍,大家对前端与Native的交互应该有一些简单的认识了,很多 ...

随机推荐

  1. 实用干货分享(3)- Git常用操作干货分享

    官方学习地址 https://git-scm.com/book/zh/v2 简单的代码提交流程 1. git status 查看工作区代码相对于暂存区的差别: 2. git add . 将当前目录下修 ...

  2. FM的正交解调法

    1.FM的模拟调制过程 ​ FM信号是一种频率调制信号,其携带的信息保存在其信号的频率中,通过改变载波的频率来实现基带数据的传输. 其函数表达式如下: \[s(t) = A*cos(w_c*t + K ...

  3. Linux NAS存储、文件共享

    Linux NAS存储之CIFS CIFS是Windows和Unix系统之间共享文件的一种协议,客户端通常是Windwos等.支持多节点同时挂载以及并发写入 1.服务器端操作(存储端) 1.1.服务器 ...

  4. 【Spring】Sring基础概念(黑马SSM学习笔记)

    目录 Spring简介 Spring是什么 Spring发展 Spring优势 Spring体系结构 Spring快速入门 Spring程序开发步骤 不用Spring的一般步骤 使用Spring框架 ...

  5. MessageConsumer

    @Slf4j @Component public class MessageConsumer { @Autowired private PpcRequestMessageListener ppcReq ...

  6. 【转载】基于timestamp和nonce的防重放攻击

    https://www.cnblogs.com/mymelody/p/7325325.html   以前总是通过timestamp来防止重放攻击,但是这样并不能保证每次请求都是一次性的.今天看到了一篇 ...

  7. Linux 中的内存使用率计算方式

    背景介绍 在工作中处理问题的时候,遇到一个问题,自己根据 top 命令时查看到的 used 和 total 计算出来的内存使用率已经达到 90% 以上了,但是系统自带的监控软件计算出来的使用率往往没有 ...

  8. 用 Cursor 写出第一个程序

    大家好,我是汤师爷 最近几个月,Cursor迅速走红,成为一款强大的编程助手.Cursor不仅使用简单,而且通过集成各种大模型技术,编程能力一流. Cursor是什么? Cursor是一个类似VSCo ...

  9. Qt编写的项目作品7-视频监控系统

    一.功能特点 (一)软件模块 视频监控模块,各种停靠小窗体子模块,包括设备列表.图文警情.窗口信息.云台控制.预置位.巡航设置.设备控制.悬浮地图.网页浏览等. 视频回放模块,包括本地回放.远程回放. ...

  10. [转]idea2021.1破解版 附安装教程免激活码

    参看链接:http://www.ddooo.com/softdown/190256.htm 百度网盘地址:https://pan.baidu.com/share/init?surl=qwywmPK-F ...