精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

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

開(kāi)發(fā) 后端
一個(gè)神奇的測(cè)試工具 tox,本文將對(duì)它做簡(jiǎn)單的介紹,說(shuō)不定大家在開(kāi)發(fā)項(xiàng)目時(shí)能夠用得上。

  •   Command line driven CI frontend and development task automation tool
  •  命令行驅(qū)動(dòng)的 CI 前端和開(kāi)發(fā)任務(wù)自動(dòng)化工具

tox 的項(xiàng)目地址是:https://github.com/tox-dev/tox

其核心作用是支持創(chuàng)建隔離的 Python 環(huán)境,在里面可以安裝不同版本的 Python 解釋器與各種依賴庫(kù),以此方便開(kāi)發(fā)者做自動(dòng)化測(cè)試、打包、持續(xù)集成等事情。

簡(jiǎn)單來(lái)說(shuō),tox 是一個(gè)管理測(cè)試虛擬環(huán)境的命令行工具。它已存在多年且廣被開(kāi)發(fā)者們使用,例如,著名的云計(jì)算平臺(tái) OpenStack 也采用了它,作為最基礎(chǔ)的測(cè)試工具之一。

1、tox 能做什么?

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

  •  創(chuàng)建開(kāi)發(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 種配置文件:

  1.  pyproject.toml
  2.  tox.ini
  3.  setup.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)開(kā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āi)頭的庫(kù),它們都是 tox 的插件包。其中不乏 setuptools、pipenv、conda、travis、pytest、docker 等被大家熟知的名字。

tox 開(kāi)放了挺多的 API 接口,方便其他人定制開(kāi)發(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,它在某些方面就存在著不足。

tox 還有強(qiáng)大的可配置性與豐富的插件支持,這使得它在運(yùn)用上具有很大的可能性與自由度。因此,不少忠實(shí)開(kāi)發(fā)者仍在持續(xù)地在使用它,比如,我剛翻譯好的系列文章的作者就是它的維護(hù)者之一。

最后還需補(bǔ)充一點(diǎn),tox 使用配置文件作驅(qū)動(dòng),但配置文件還是挺繁瑣的,因此有人開(kāi)發(fā)了一個(gè)跟 tox 相似的nox,使用 Python 文件來(lái)做配置。這個(gè)項(xiàng)目也很受歡迎,吸引了很多項(xiàng)目投入其門下,例如 pipx、urllib3、Salt 等等。對(duì)該項(xiàng)目感興趣的話,請(qǐng)查看:https://nox.thea.codes/en/stable。

責(zé)任編輯:龐桂玉 來(lái)源: Python編程
相關(guān)推薦

2021-05-19 17:04:29

Python阿里自動(dòng)化工具

2024-06-13 12:11:13

2020-03-31 10:58:35

網(wǎng)絡(luò)自動(dòng)化SD-WAN軟件定義網(wǎng)絡(luò)

2010-05-26 16:21:25

2024-03-08 13:11:05

前端自動(dòng)化工具

2010-12-06 09:56:52

數(shù)據(jù)中心網(wǎng)絡(luò)

2024-04-08 11:45:11

Pythonpyinfra編程語(yǔ)言

2013-12-19 09:56:12

云計(jì)算自動(dòng)化工具云計(jì)算管理

2021-05-08 09:00:53

AI 工具人工智能

2024-06-12 12:36:48

CrontabPython庫(kù)

2012-04-16 10:12:55

云計(jì)算自動(dòng)化

2020-04-26 15:31:58

DevOps自動(dòng)化工具

2019-09-18 20:39:07

數(shù)據(jù)科學(xué)自動(dòng)化工具機(jī)器學(xué)習(xí)

2010-12-06 09:54:09

網(wǎng)絡(luò)自動(dòng)化

2021-02-22 18:50:03

Ansible系統(tǒng)運(yùn)維

2021-04-30 13:40:55

Linux自動(dòng)化工具開(kāi)源

2019-12-11 11:54:37

IT工具云計(jì)算

2023-01-07 23:24:00

python格式化工具

2020-12-23 10:43:40

云計(jì)算基礎(chǔ)設(shè)施自動(dòng)化工具

2010-06-25 11:04:59

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

69国产精品视频免费观看| 国产又大又黄又粗又爽| 成人免费视频国产| 亚洲影音先锋| 最新国产精品亚洲| 国内av一区二区| f2c人成在线观看免费视频| 99久久国产综合精品色伊| 国产精品mp4| 欧美一级片在线视频| 精品网站aaa| 欧美日韩在线直播| 五十路熟女丰满大屁股| av在线电影观看| 不卡在线观看av| 国产乱肥老妇国产一区二| 久久高清免费视频| 色偷偷综合网| 亚洲黄色免费三级| 天天综合网久久| 亚洲第一av| 夜夜揉揉日日人人青青一国产精品| 精品中文字幕一区| 国产黄色美女视频| 毛片一区二区三区| 欧美在线视频观看| 久久精品99久久久久久| 91欧美在线| 亚洲色图综合网| 男女性杂交内射妇女bbwxz| 欧美黄色网络| 色综合天天视频在线观看| 天堂8在线天堂资源bt| 99精品老司机免费视频| 久久亚洲影视婷婷| 国产欧美日韩在线播放| 精品人妻伦一二三区久久| 蜜臀av性久久久久av蜜臀妖精| 97在线观看免费高清| 国产美女久久久久久| 日本久久精品| 亚洲最新视频在线| 妺妺窝人体色WWW精品| 亚洲高清极品| 亚洲精品国精品久久99热| 丰满熟女人妻一区二区三区| 精品国产亚洲一区二区三区在线 | www.日本少妇| 色呦呦久久久| 亚洲高清三级视频| 成人一区二区免费视频| av电影院在线看| 亚洲一本大道在线| av无码久久久久久不卡网站| 日本三级在线观看网站| 亚洲一区二区三区视频在线| 男人添女荫道口喷水视频| 欧美人与禽性xxxxx杂性| 一区二区三区不卡在线观看| 成人高清dvd| 神马午夜伦理不卡| 性感美女久久精品| 欧美 丝袜 自拍 制服 另类| 涩涩视频在线免费看| 日韩欧美一区二区三区久久| 国产1区2区在线| 性感美女一区二区在线观看| 欧美性受xxxx| 天天干天天干天天干天天干天天干| 123成人网| 在线播放欧美女士性生活| 天天操精品视频| 日韩av综合| 精品夜色国产国偷在线| 成年人在线免费看片| 98精品久久久久久久| 美女精品久久久| 国产精品a成v人在线播放| 亚洲一区免费| 国产精品自拍视频| www.桃色av嫩草.com| 99免费精品视频| 日本精品一区二区三区不卡无字幕| av福利在线播放| 亚洲男人的天堂在线aⅴ视频| 18禁裸男晨勃露j毛免费观看| 日韩欧美精品一区二区三区| 欧美系列日韩一区| 乳色吐息在线观看| 免费一区二区三区视频导航| 久久精品福利视频| 中文字幕亚洲高清| 精品一区二区在线视频| 国产乱码一区| 又爽又大又黄a级毛片在线视频| 一区二区三区不卡视频在线观看| 国产最新免费视频| 亚洲天堂网站| 日韩av一卡二卡| 国产精品国产三级国产传播| 99视频在线精品国自产拍免费观看| 国产精品中文久久久久久久| 欧美熟妇交换久久久久久分类| 久久精品综合网| 激情五月六月婷婷| 深夜视频一区二区| 亚洲国产成人精品久久久国产成人一区 | 蜜臀尤物一区二区三区直播| 国产精品亚洲一区二区三区妖精 | 狠狠躁夜夜躁人人躁婷婷91| 国产九九热视频| 欧美大胆视频| 久久成年人免费电影| 中文字幕手机在线视频| 成人综合婷婷国产精品久久蜜臀| 亚洲成人一区二区三区| 老色鬼在线视频| 欧美一级视频精品观看| 亚洲精品国产精品国自| 国产精品久久国产愉拍| av色综合网| 国产视频一区二区| 欧美特级限制片免费在线观看| xxxxxx黄色| 亚洲一级特黄| 91观看网站| 黄网页在线观看| 欧美在线观看禁18| 大又大又粗又硬又爽少妇毛片| 海角社区69精品视频| 国产美女91呻吟求| 成人精品一区二区三区校园激情| 欧美日韩美女在线观看| 扒开伸进免费视频| 国产精品大片免费观看| 亚洲综合一区二区不卡| 麻豆传媒视频在线观看免费| 色婷婷av一区二区三区gif| 精品视频站长推荐| 亚洲黄色三级| 国产伦精品一区二区三区高清版 | 亚洲国产精品自拍| 女性生殖扒开酷刑vk| 国内一区二区三区| 国产伦视频一区二区三区| 色婷婷视频在线观看| 日韩欧美美女一区二区三区| 男女羞羞免费视频| 国产精品一品二品| 国产精品三级一区二区| 中文字幕视频精品一区二区三区| 欧美日本精品在线| 亚洲av少妇一区二区在线观看| 一区二区三区在线观看国产| 中文字幕1区2区| 狠狠入ady亚洲精品经典电影| 成人黄色片视频网站| 黄网在线免费看| 日韩电影大片中文字幕| 秋霞av一区二区三区| 国产女主播视频一区二区| www.日本一区| 亚洲一本二本| 国产一区二区在线网站 | 91精品久久久久久久久中文字幕| 91社区在线观看| 555www色欧美视频| 久久免费视频播放| 91视频.com| 韩国中文字幕av| 亚洲区综合中文字幕日日| 1卡2卡3卡精品视频| www视频在线观看| 亚洲欧美国产一本综合首页| 又骚又黄的视频| 亚洲激情av在线| 国产精品一级黄片| 免费的成人av| 高清无码一区二区在线观看吞精| 欧美重口另类| 国产一区二中文字幕在线看| 午夜伦理在线视频| 亚洲男人天堂视频| 国产露脸国语对白在线| 欧美日韩国产精品一区| 男女男精品视频网站| 成人免费不卡视频| 99视频在线免费| 国产精品大片免费观看| 色涩成人影视在线播放| 日韩国产在线不卡视频| 日本精品久久久久影院| 伊人福利在线| 亚洲人午夜精品免费| av男人天堂av| 在线亚洲一区二区| 国产一级做a爰片在线看免费| 久久精品人人做人人爽人人| 台湾佬美性中文| 免费成人性网站| 国产午夜福利在线播放| 久久久久久久久丰满| 欧美日韩精品综合| 91久久偷偷做嫩草影院电| 国产精品视频免费在线观看| 69av成人| 欧美理论电影在线观看| 国产女主播在线写真| 亚洲国产精品女人久久久| 国产精品自产拍| 在线观看不卡一区| 久久国产精品系列| 一区二区日韩av| 男人天堂资源网| 国产亚洲美州欧州综合国| 污污免费在线观看| 国产一区二区免费看| 久久精品影视大全| 日韩电影一区二区三区| 国产精品成人久久电影| 亚洲最新色图| 自拍亚洲欧美老师丝袜| 精品色999| 欧美日韩亚洲综合一区二区三区激情在线 | 欧洲日韩一区二区三区| 日韩精品在线不卡| 亚洲韩国一区二区三区| 欧美性猛交xxxxx少妇| 综合久久国产九一剧情麻豆| 免费黄色在线网址| 国产欧美综合在线观看第十页| 精品无码在线视频| 99re热这里只有精品视频| 天堂www中文在线资源| 国产精品综合视频| 天天色天天干天天色| 韩国三级中文字幕hd久久精品| 91女神在线观看| 男女性色大片免费观看一区二区| 欧美激情精品久久久久久小说| 亚洲男人影院| 欧美日韩亚洲第一| 久久先锋影音| 动漫av免费观看| 日韩成人dvd| 黄色手机在线视频| 看片网站欧美日韩| www.色就是色.com| 国产麻豆午夜三级精品| gogo亚洲国模私拍人体| 国产成人av电影在线| 色悠悠在线视频| 99免费精品在线| 成年人免费观看视频网站| 国产日韩综合av| youjizz亚洲女人| 亚洲猫色日本管| 久久久久久久久久久网| 午夜精品一区二区三区免费视频 | 成人日批视频| 欧美大片在线看| 蜜桃视频在线网站| 国产成人aa精品一区在线播放 | 国产福利久久精品| 欧洲精品一区| 色综合视频二区偷拍在线| 香蕉综合视频| 欧美一级免费播放| 美女日韩在线中文字幕| 9l视频白拍9色9l视频| 狠狠色丁香久久婷婷综合_中| 久久久久国产免费| www欧美成人18+| 国内毛片毛片毛片毛片毛片| 亚洲最大的成人av| 在线观看 亚洲| 91麻豆精品国产91久久久使用方法 | 久久精品女人天堂av免费观看 | 欧美一区二区三区红桃小说| 日韩欧美在线观看强乱免费| 中文在线日韩| 久久网站免费视频| 精品在线亚洲视频| 日本黄色免费观看| 国产精品久久看| 日韩av在线播放观看| 欧美色综合网站| 黑人乱码一区二区三区av| 一区二区亚洲精品国产| 丝袜国产在线| 国产裸体写真av一区二区| 国产美女撒尿一区二区| 亚洲国产一区在线| 亚洲经典三级| 免费看涩涩视频| 99riav久久精品riav| www.com.av| 色综合久久中文综合久久97| 精品国产99久久久久久宅男i| 亚洲女成人图区| 超碰在线中文字幕| 国产日韩欧美黄色| 亚洲免费专区| 国产精品一色哟哟| 激情综合色综合久久综合| 亚洲最大成人网站| 亚洲一区二区三区美女| 亚洲一区 中文字幕| 亚洲美女www午夜| av免费在线视| 91系列在线观看| 日韩中文在线电影| 亚洲爆乳无码专区| 成人不卡免费av| 欧美另类视频在线观看| 欧美日韩一区二区三区在线看| 日本天堂影院在线视频| 久久久久久久久久av| 韩国三级成人在线| 中文字幕在线中文字幕日亚韩一区| 午夜在线观看免费一区| 男男一级淫片免费播放| 一区二区三区四区激情| 国产免费无遮挡| 在线成人中文字幕| 午夜日韩成人影院| 美女视频久久| 亚洲欧美久久久| 精品国产av色一区二区深夜久久| 亚洲自拍与偷拍| 国产xxxx在线观看| 欧美成人精品在线观看| 中文字幕日韩亚洲| 国产日本欧美在线| 久久99精品国产麻豆不卡| 一级二级黄色片| 欧美色图一区二区三区| 淫片在线观看| 国产在线高清精品| 日韩欧美视频专区| 色婷婷一区二区三区av免费看| 中文字幕第一区二区| 中国精品一区二区| 色青青草原桃花久久综合 | 欧美寡妇性猛交xxx免费| 3d动漫精品啪啪一区二区三区免费 | 日韩成人免费av| 中文字幕在线中文字幕日亚韩一区 | 性猛交xxxx| 91地址最新发布| 国产探花一区二区| 亚洲欧美日韩一级| 亚洲男同性恋视频| 日本xxxx人| 欧洲永久精品大片ww免费漫画| 国产99久久| 成人性生交免费看| 亚洲精品乱码久久久久久黑人| www三级免费| 91精品国产成人www| 亚洲激情播播| 午夜免费看视频| 一区二区三区中文字幕电影 | 无码专区aaaaaa免费视频| 99久久精品国产网站| 久久久黄色大片| 最近2019中文字幕大全第二页| 2020国产精品小视频| 日本天堂免费a| 26uuu欧美日本| 在线观看国产一区二区三区| 久久国产精品久久久久| 国产精品chinese在线观看| 午夜视频在线瓜伦| 综合久久久久久| 日本韩国精品一区二区| 国产日韩在线视频| 影音国产精品| 免费看91的网站| 正在播放亚洲一区| 久久男人天堂| 中文字幕免费在线不卡| 不卡一卡二卡三乱码免费网站| 波多野结衣小视频| 欧美国产精品日韩| 国产毛片一区二区三区| 一起草最新网址| 精品国产精品自拍| 男人和女人做事情在线视频网站免费观看 | 日本一区二区成人| www.热久久| 国产精品免费小视频| 亚洲特色特黄| 国产不卡在线观看视频| 亚洲福利精品在线| 9999精品| 成年人小视频网站| 亚洲在线免费播放| 在线观看h片| 久久精品国产精品国产精品污|