浅谈Tox之一
本文分享自天翼云開發(fā)者社區(qū)《淺談Tox之一》,作者:Moonriver
What is tox?
tox是通用的virtualenv管理和測試命令行工具,可用于:
- 使用不同的Python版本和解釋器檢查您的軟件包是否正確安裝
- 在每個環(huán)境中運(yùn)行測試,配置您選擇的測試工具
- 充當(dāng)持續(xù)集成服務(wù)器的前端,大大減少了樣板文件并合并了CI和基于shell的測試。
Basic example
首先,使用pip install tox安裝tox。 然后將項目以及測試環(huán)境的基本信息放入位于setup.py文件旁邊的tox.ini文件中:
只需輸入:tox,如上圖tox.ini文件所示,即可對當(dāng)前項目進(jìn)行sdist打包,創(chuàng)建兩個Python2.7和Python3.6的virtualenv環(huán)境,將sdist軟件包安裝到環(huán)境中,并在每個環(huán)境中進(jìn)行測試。
System overview
tox大致分為以下幾個階段:
1. 配置
2. 包裝(可選)
3. 環(huán)境
4. 報告
配置->打包(可選)->環(huán)境->報告
1. 配置
加載tox.ini并將其與命令行和操作系統(tǒng)環(huán)境變量中的選項合并。
2. 打包(可選)
通過調(diào)用python setup.py sdist創(chuàng)建當(dāng)前項目的源代碼庫。
3. 環(huán)境
對于每個Tox環(huán)境執(zhí)行以下操作:
環(huán)境創(chuàng)建——默認(rèn)情況下使用virtualenv創(chuàng)建一個新的環(huán)境。 tox會使用環(huán)境名稱(例如表示Python 2.7的py27和basepython配置值)和當(dāng)前的操作系統(tǒng)PATH值來自動嘗試查找有效的Python解釋器版本。
install(可選)——安裝deps配置部分中指定的環(huán)境依賴項,然后安裝較早打包的源代碼。 commands——以指定的順序運(yùn)行指定的命令。
4. 報告——打印出每種tox環(huán)境的結(jié)果報告:
____________________ summary ____________________
py27: commands succeeded
ERROR: py36: commands failed
只有所有環(huán)境都成功運(yùn)行了,tox才會返回退出代碼0(成功)。
tox將為您解決環(huán)境隔離問題:它將刪除未通過passenv指定的所有操作系統(tǒng)環(huán)境變量。 此外,它還將更改PATH變量,以便您的命令在當(dāng)前活動的Tox環(huán)境中首先解析。 通常,路徑中的所有可執(zhí)行文件都可以在命令中使用,但是如果沒有通過whitelist_externals明確允許,tox將發(fā)出警告。
總結(jié)
 
                            
                        - 上一篇: mysql(四)log
- 下一篇: ICML 2018大奖出炉:伯克利、MI
