tox

建立成功的 Python 环境的 4 个基本工具

橙三吉。 提交于 2020-08-15 17:39:20
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 选择的这些工具将简化你的 Python 环境,以实现顺畅和一致的开发实践。 Python 是一门出色的通用编程语言,经常作为第一门编程语言来教授。二十年来,我为它撰写了很多本书,而它仍然是我的首选语言。虽然通常来说这门语言是简洁明了的,但是(正如 xkcd 讽刺的),从来没有人说过配置 Python 环境也是一样的简单。 xkcd python illustration 一个复杂的Python环境。 在日常生活中有很多使用 Python 的方法。我将解释我是如何使用这些 Python 生态系统工具的。但坦诚的说,我仍在寻找更好的替代品。 使用 pyenv 来管理 Python 版本 我发现在机器上运行一个特定版本的 Python 的最好方法是使用 pyenv。这个软件可以在 Linux、Mac OS X 和 WSL2 上工作:这是我通常关心的三个 “类 UNIX” 环境。 安装 pyenv 本身有时会有点棘手。一种方法是使用专用的 pyenv 安装程序,它使用 curl | bash 方法来进行。 如果你是在 Mac 上(或者你运行 Homebrew 的其他系统),你可以按照这里的说明来安装和使用 pyenv。 按照说明安装和设置了 pyenv 之后,你可以使用 pyenv

pytest文档18-配置文件pytest.ini

两盒软妹~` 提交于 2020-08-11 14:39:17
前言 pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行。 ini配置文件 pytest里面有些文件是非test文件 pytest.ini pytest的主配置文件,可以改变pytest的默认行为 conftest.py 测试用例的一些fixture配置 _ init _.py 识别该文件夹为python的package包 tox.ini 与pytest.ini类似,用tox工具时候才有用 setup.cfg 也是ini格式文件,影响setup.py的行为 ini文件基本格式 # 保存为pytest.ini文件 [pytest] addopts = -rsxX xfail_strict = true 使用pytest --help指令可以查看pytest.ini的设置选项 [pytest] ini-options in the first pytest.ini|tox.ini|setup.cfg file found: markers (linelist) markers for test functions empty_parameter_set_mark (string) default marker for empty parametersets norecursedirs (args)

RecyclerView动画源码浅析

大城市里の小女人 提交于 2020-07-27 12:00:53
RecyclerView动画源码浅析 adapter.notifyItemRemoved(1)会回调到 RecyclerViewDataObserver: adapter.notifyItemRemoved RecyclerViewDataObserver onItemRangeRemoved triggerUpdateProcessor mAdapterUpdateDuringMeasure consumePendingUpdateOperations dispatchLayout dispatchLayoutStep1 processAdapterUpdatesAndSetAnimationFlags preProcess applyRemove postponeAndUpdateViewHolders offsetPositionsForRemovingLaidOutOrNewView offsetPositionRecordsForRemove flagRemovedAndOffsetPosition setFrom ItemHolderInfo ViewHolder mViewInfoStore mLayoutHolderMap 保存动画前View的现场 if (POST_UPDATES_ON_ANIMATION && mHasFixedSize &&

How to test a library against different Python *patch* versions?

一笑奈何 提交于 2020-06-17 00:04:30
问题 I'm writing a library and want to test against different Python patch versions, like 3.7.1, 3.7.2, etc I've been using tox for a long time, however, according to this answer, it doesn't really support this kind of usage. Any suggestions? 回答1: For a one of check against 3.8.1 (assuming your python3.8 points to 3.8.2) you can use the discover flag tox --discover /path/to/python3.8.1 -e py38 If you want to define an environment that always uses 3.8.1 you can do that by defining a new tox

How reliable is Tox' caching?

风流意气都作罢 提交于 2020-05-14 09:14:09
问题 I am using Tox as a wrapper around all the python code quality tools like flake8, mypy and pytest. I also invoke Tox from Jenkins. Currently, for every git push we create a fresh Conda environment holding python=3.7 and tox invoke tox, which will recreate all virtual environments freshly remove .tox/ and the Conda environment Due to this, running tox takes 2 seconds locally but 90 seconds in Jenkins. I now wonder whether we are to cautious. Would it be ok to leave the .tox/ cache folder alone

在Vcl和FireMonkey应用程序中启用TXMLDocument 的XPath(selectNode,selectNodes)方法

萝らか妹 提交于 2020-05-07 16:38:12
该 TXMLDocument的 类让你来操作VCL和FireMonkey应用程序的XML文件,但这个类没有实现直接的方式来调用XPath的相关方法( selectNode , 的selectNodes ),所以你必须编写一组辅助函数来调用这些方法。 通常你可以写这样的东西 function selectSingleNode(ADOMDocument: IDOMDocument; const nodePath: WideString): IDOMNode; var LDomNodeSelect : IDomNodeSelect; begin if not Assigned(ADOMDocument) or not Supports(ADOMDocument.documentElement, IDomNodeSelect, LDomNodeSelect) then Exit; // or just LDomNodeSelect:= (ADOMDocument.documentElement as IDOMNodeSelect); Result:= LDomNodeSelect.selectNode(nodePath); end ; function SelectNodes(ADOMDocument: IDOMDocument; const nodePath: WideString):

是时候把你的Python2应用迁移到Python3了

纵然是瞬间 提交于 2020-05-06 10:54:07
到2020年一月1日,Python2.7将不再受到官方维护,小伙伴,程序猿,工程狮们,是时候将你们的Python2迁移到Python3了。因为距这一天只有10个月了! 许多的开源项目 已经准备好离python2而去了: 上面的列表只是其中一些,包括了许多我常用的机器学习的库,Tensorflow,Pandas,Scikit-learn,Numpy等等,看看有没有你常用的呢? Python2 VS Python3 那么我么就先来看看Python2/3的主要差异吧。 Python3引入了很多和Python2不兼容的关键字和功能,其中一些可以通过Python2内置的 __future__ 模块来实现前向兼容,也就是说可以让你的Python2的代码在Python3的解释器中运行。如果你计划要支持Python3,那么你可以在你的Python2的代码中先使用该模块。 from __future__ import division 该模块支持的Python3的新特性如下的功能: PEP 3105 : Make print a function PEP 238 : Changing the Division Operator PEP 3112 : Bytes literals in Python 3000 (unicode) PEP 328 : Imports: Multi-Line and

携程大牛教你如何设计一个自动化框架

痞子三分冷 提交于 2020-04-21 20:46:40
对于如何设计一个自动化框架之前,首先得清楚什么是自动框架,设计时有哪些是需要注意的,然后该怎么去做? 什么是自动化测试框架? 1、什么是框架? 特指为解决一个开放性问题而设计的具有一定约束性的支撑结构。在此结构上可以根据具体问题扩展、安插更多的组成部分,从而更迅速和方便地构建完整的解决问题的方案。框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法。也就是说框架本身不解决特定的问题,它是通过扩展的各种组件或者工具来解决问题,并且它可以方便的添加或者修改部分组件的功能。 2、什么是自动化测试框架? 什么是自动化测试框架,我们拆分来看的话,其实就是三个方面,自动化、测试、框架,什么是框架上面说了,还有就是他能执行测试,而且还是自动化的,所以框架的各个组件的主要功能就是围绕着如何自动化如何执行测试展开的。 这里可以把框架的各个功能称作模块,那我们来看看都需要那些模块,需要一个基础模块,主要是怎么实现脚本编写,管理模块,主要的行为是持续集成,定时执行、case管理,统计模块,主要是发送测试报告,统计分析。 那总结一下自动化测试框架的定义就是:把在自动化测试过程中用到的一些功能或者工具,分装成各个模块,包括如何进行自动化脚本编写以及分层功能的基础模块,进行持续集成、定时任务的管理模块,发送测试报告、进行测试结果统计分析的统计模块等,将这些模块组成一套可重用的骨架。

pytest、tox、Jenkins实现python接口自动化持续集成

不问归期 提交于 2020-03-25 09:32:27
3 月,跳不动了?>>> pytest介绍 pytest是一款强大的python测试工具,可以胜任各种级别的软件测试工作,可以自动查找测试用并执行,并且有丰富的基础库,可以大幅度提高用户编写测试用例的效率,具备可扩展性,用户自己也可以编写插件实现特定的功能,也可以安装第三方插件,非常容易的与其他工具集成到一起,比如持续集成、接口自动化测试等。小编之前也写过几篇关于pytest的文章,可以到主页查看哈。 tox介绍 tox是一个命令行工具,允许测试在多种环境下执行,tox不仅能测试不同的python版本,还可以用它来测试不同的依赖配置和不同的操作系统的配置。 工作原理大致是,通过setup.py文件为待测程序创建源码安装包,它会查看tox.ini中的所有环境设置,并针对每个环境执行如下操作: 在.tox目录下创建一个虚拟环境 使用pip安装依赖包 使用pip在步骤1的虚拟环境中安装自己的程序包 运行测试用例 下面通过一个实例来看一下tox的运行过程: 在项目根目录下新建tox.ini文件,然后加入下面的配置 [tox] envlist = py36 [testenv:dev] ; deps告诉tox确保pytest已经安装,如果有多个测试依赖,可以按行罗列,同时也可以指定版本 deps = pytest ; 告诉tox在每个测试环境里运行pytest commands =

python lib

二次信任 提交于 2020-03-17 12:10:25
某厂面试归来,发现自己落伍了!>>> 7 essential PyPI libraries and how to use them Solve common Python problems by learning how to use these seven Python Package Index (PyPI) libraries. 7_essential_pypl_libraries-cover.jpg Download guide to 7 essential PyPI libraries Python is one of the most popular programming languages in use today—and for good reasons: it's open source, it has a wide range of uses (such as web programming, business applications, games, scientific programming, and much more), and it has a vibrant and dedicated community supporting it. In this guide, we'll look at seven Python Package Index