最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python任務(wù)自動(dòng)化工具tox使用教程

 更新時(shí)間:2020年03月17日 09:00:17   作者:python大師  
這篇文章主要介紹了Python任務(wù)自動(dòng)化工具tox使用教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

1、tox 能做什么?

細(xì)分的用途包括:

  • 創(chuàng)建開發(fā)環(huán)境
  • 運(yùn)行靜態(tài)代碼分析與測(cè)試工具
  • 自動(dòng)化構(gòu)建包
  • 針對(duì) tox 構(gòu)建的軟件包運(yùn)行測(cè)試
  • 檢查軟件包是否能在不同的 Python 版本/解釋器中順利安裝
  • 統(tǒng)一持續(xù)集成(CI)和基于命令行的測(cè)試
  • 創(chuàng)建和部署項(xiàng)目文檔
  • 將軟件包發(fā)布到 PyPI 或任何其它平臺(tái)

tox 官方文檔中列出了 40 余種使用場(chǎng)景的示例,詳細(xì)的列表可查看:

https://tox.readthedocs.io/en/latest/examples.html

2、tox 怎么配置?

關(guān)于它的用法:使用pip install tox安裝,使用tox運(yùn)行全部測(cè)試環(huán)境,和tox -e envname運(yùn)行指定的環(huán)境。還有不少的命令行參數(shù),通過(guò)tox -h查看。

tox 的行為由其配置文件控制,當(dāng)前它支持 3 種配置文件:

pyproject.tomltox.inisetup.cfg

以 tox 項(xiàng)目自己的 tox.ini 配置內(nèi)容為例,可以看到它是這樣配置的(https://github.com/tox-dev/tox/blob/master/tox.ini):

每個(gè)[xxx]及其下方內(nèi)容組成一個(gè)章節(jié)(section),每個(gè)章節(jié)間使用空行作間隔。

[tox]下面是全局性的配置項(xiàng),envlist 字段定義了 tox 去操作的環(huán)境。[xxx]下面是 xxx 虛擬環(huán)境的配置項(xiàng),[xxx:yyy]繼承 xxx 的配置,同時(shí)其自身配置項(xiàng)的優(yōu)先級(jí)更高。

對(duì)于每個(gè)虛擬環(huán)境,可用的配置項(xiàng)很多,例如常用的有:description(描述信息)、basepython(Python解釋器版本)、deps(環(huán)境依賴項(xiàng))、commands(命令語(yǔ)句)等等。

tox 還支持作變量替換,它提供了一些內(nèi)置的基礎(chǔ)變量(全局的或?qū)τ谔摂M環(huán)境的):{toxinidir}、{homedir}、{envname}、{envdir}等等。

除了基礎(chǔ)性的變量替換,它還支持這些高級(jí)用法:

  • 取操作系統(tǒng)的環(huán)境變量:{env:KEY},效果等同于os.environ['KEY'] ??梢宰兓桑簕env:KEY:DEFAULTVALUE},在取不到環(huán)境變量時(shí)則使用默認(rèn)值;{env:KEY:{env:DEFAULT_OF_KEY}},達(dá)到 if-else 的取值效果
  • 傳遞命令行參數(shù):{posargs:DEFAULTS},當(dāng)沒(méi)有命令行參數(shù)時(shí),使用 DEFAULTS 值。使用方式:tox arg1 arg2 傳兩個(gè)參,或者tox -- --opt1 arg1 將“-- opt1 arg1”作為整體傳入。
  • 章節(jié)間傳值:{[sectionname]valuename},不同章節(jié)的內(nèi)容可以傳遞使用。
  • 交互式控制臺(tái)注入:{tty:ON_VALUE:OFF_VALUE},當(dāng)交互式 shell 控制臺(tái)開啟時(shí),使用第一個(gè)值,否則使用第二個(gè)。pytest 在使用“--pdb”時(shí),是這樣的例子。

花括號(hào)“{}”除了可以做變量替換使用,它還可以作為“或關(guān)系”判斷的取值。直接看下面的例子:

[tox]
envlist = {py27,py36}-django{15,16}

{py27,py36}-django{15,16} 的 2 組花括號(hào)內(nèi)各有 2 個(gè)值,它們實(shí)際可以組合成 4 個(gè)環(huán)境:py27-django15、py27-django16、py36-django15、py36-django16。

關(guān)于 tox 有哪些配置項(xiàng)、使用條件、什么含義、高級(jí)用法等等內(nèi)容,可在官方文檔中查看:

https://tox.readthedocs.io/en/latest/config.html

3、tox 的插件化

除了自身強(qiáng)大的可配置性,tox 還具有很強(qiáng)的可擴(kuò)展性,它是可插拔的(pluggable),圍繞它產(chǎn)生了一個(gè)極為豐富的插件生態(tài)。

使用pip search tox,可以看到數(shù)量眾多的“tox-”開頭的庫(kù),它們都是 tox 的插件包。其中不乏 setuptools、pipenv、conda、travis、pytest、docker 等被大家熟知的名字。

tox 開放了挺多的 API 接口,方便其他人定制開發(fā)插件。

4、tox 的工作流程

接下來(lái)看看 tox 是怎么運(yùn)作的:

其工作流程中主要的環(huán)節(jié)有:

配置(從figuration):加載配置文件(如 tox.ini),解析命令行參數(shù),讀取系統(tǒng)環(huán)境變量等打包(packaging):可選的,對(duì)于帶有 setup.py 文件的項(xiàng)目,可以在這步去生成它的源發(fā)行版創(chuàng)建虛擬環(huán)境:默認(rèn)使用 virtualenv 來(lái)創(chuàng)建虛擬環(huán)境,并根據(jù)配置項(xiàng)中的“deps”安裝所需的依賴項(xiàng),然后執(zhí)行配置好的命令(commands)

報(bào)告(report):匯總所有虛擬環(huán)境的運(yùn)行結(jié)果并羅列出來(lái)

5、小結(jié)

tox 本身定位是一個(gè)測(cè)試工具,它試圖令 Pytho 測(cè)試工作變得自動(dòng)化、標(biāo)準(zhǔn)化與流程化。但跟 unittest 和 pytest 這些測(cè)試框架不同,它作用的是代碼層面之外的事情,是一種項(xiàng)目級(jí)的工具。因此,它需要跟這些測(cè)試框架相結(jié)合,或者同時(shí)處理多種自動(dòng)化任務(wù)(如跑 pep8、測(cè)代碼覆蓋率、生成文檔等等),這樣才能更好地發(fā)揮它的價(jià)值。

它的一大特色在于創(chuàng)建/管理虛擬環(huán)境,但這只是為了方便測(cè)試而使用的手段,因此相比其它可管理虛擬環(huán)境的工具,如 Virtualenvwrapper、conda、pipenv、poetry,它在某些方面就存在著不足。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python將.ppm格式圖片轉(zhuǎn)換成.jpg格式文件的方法

    python將.ppm格式圖片轉(zhuǎn)換成.jpg格式文件的方法

    今天小編就為大家分享一篇python將.ppm格式圖片轉(zhuǎn)換成.jpg格式文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • Django+python服務(wù)器部署與環(huán)境部署教程詳解

    Django+python服務(wù)器部署與環(huán)境部署教程詳解

    這篇文章主要介紹了Django+python服務(wù)器部署與環(huán)境部署教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Python的subprocess模塊總結(jié)

    Python的subprocess模塊總結(jié)

    這篇文章主要介紹了Python的subprocess模塊總結(jié),本文詳細(xì)講解了subprocess模塊參數(shù)及Popen方法,然后給出了多個(gè)使用實(shí)例,需要的朋友可以參考下
    2014-11-11
  • Python如何實(shí)現(xiàn)郵件功能

    Python如何實(shí)現(xiàn)郵件功能

    在本篇文章里小編給大家分享的是關(guān)于Python實(shí)現(xiàn)郵件功能的方法,有需要的朋友們可以學(xué)習(xí)參考下。
    2020-05-05
  • Pandas groupby apply agg 的區(qū)別 運(yùn)行自定義函數(shù)說(shuō)明

    Pandas groupby apply agg 的區(qū)別 運(yùn)行自定義函數(shù)說(shuō)明

    這篇文章主要介紹了Pandas groupby apply agg 的區(qū)別 運(yùn)行自定義函數(shù)說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • python讀取pdf格式文檔的實(shí)現(xiàn)代碼

    python讀取pdf格式文檔的實(shí)現(xiàn)代碼

    這篇文章主要給大家介紹了關(guān)于python讀取pdf格式文檔的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 使用IPython下的Net-SNMP來(lái)管理類UNIX系統(tǒng)的教程

    使用IPython下的Net-SNMP來(lái)管理類UNIX系統(tǒng)的教程

    這篇文章主要介紹了使用IPython下的Net-SNMP來(lái)管理類UNIX系統(tǒng)的教程,本文來(lái)自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下
    2015-04-04
  • selenium如何定位span元素的實(shí)現(xiàn)

    selenium如何定位span元素的實(shí)現(xiàn)

    這篇文章主要介紹了selenium如何定位span元素的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 使用python實(shí)現(xiàn)數(shù)據(jù)篩查

    使用python實(shí)現(xiàn)數(shù)據(jù)篩查

    一般數(shù)據(jù)篩查可以通過(guò)Python中的pandas庫(kù)來(lái)實(shí)現(xiàn),下面小編就來(lái)為大家介紹一下Python如何利用pandas實(shí)現(xiàn)數(shù)據(jù)篩查,感興趣的小伙伴可以一起學(xué)習(xí)一下
    2023-10-10
  • Python中使用動(dòng)態(tài)變量名的方法

    Python中使用動(dòng)態(tài)變量名的方法

    這篇文章主要介紹了Python中使用動(dòng)態(tài)變量名的方法,需要的朋友可以參考下
    2014-05-05

最新評(píng)論

调兵山市| 庐江县| 常德市| 封丘县| 瓮安县| 新蔡县| 海门市| 长宁区| 金秀| 龙州县| 桃源县| 邻水| 南通市| 革吉县| 鸡西市| 天柱县| 博客| 金寨县| 南江县| 高青县| 英山县| 随州市| 盐池县| 卢湾区| 名山县| 霍城县| 邓州市| 通渭县| 呼和浩特市| 丰顺县| 平和县| 桃园县| 武隆县| 普兰店市| 贵定县| 乌拉特前旗| 阳高县| 大悟县| 芒康县| 延庆县| 准格尔旗|