浅谈Tox之一
本文分享自天翼云開發者社區《淺談Tox之一》,作者:Moonriver
What is tox?
tox是通用的virtualenv管理和測試命令行工具,可用于:
- 使用不同的Python版本和解釋器檢查您的軟件包是否正確安裝
- 在每個環境中運行測試,配置您選擇的測試工具
- 充當持續集成服務器的前端,大大減少了樣板文件并合并了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將發出警告。
總結
- 上一篇: mysql(四)log
- 下一篇: ICML 2018大奖出炉:伯克利、MI