淺談Tox之二
本文分享自天翼云開發(fā)者社區(qū)《淺談Tox之二》,作者:Moonriver
1. 配置
加載tox.ini并將其與命令行和操作系統(tǒng)環(huán)境變量中的選項合并。
2. 包裝(可選)
通過調(diào)用python setup.py sdist創(chuàng)建當(dāng)前項目的源代碼版本庫。 注意對于此操作,Python環(huán)境將與安裝tox時的相同(因此需要確保tox包含構(gòu)建依賴項)。對于沒有setup.py的應(yīng)用程序項目,跳過此步驟。
rally_openstack/tox.ini
minversion 定義運行所需的最低版本。
skipsdist = false(true | false) 指示是否執(zhí)行打包操作的標(biāo)志。當(dāng)將tox用于應(yīng)用程序而不是庫時,設(shè)置為true。
envlist(逗號分隔值) 確定要使用tox的環(huán)境列表是按以下順序進(jìn)行的(如果找到了,則不再進(jìn)行任何查找)
3. 環(huán)境
環(huán)境創(chuàng)建——創(chuàng)建一個新的環(huán)境,默認(rèn)情況下使用virtualenv。 tox會使用環(huán)境名稱(例如表示Python 2.7的py27和basepython配置值)和當(dāng)前的操作系統(tǒng)PATH值來自動嘗試查找有效的Python解釋器版本。
install(可選)——安裝deps配置部分中指定的環(huán)境依賴項,然后安裝較早打包的源代碼。
commands——以指定的順序運行指定的命令。
測試環(huán)境由以下方式定義:
[testenv:NAME]
commands = ... testenv默認(rèn)部分:
[testenv]
commands = ...
extras(MULTI-LINE-LIST)
與sdist一起安裝或進(jìn)行開發(fā)安裝的“附加”列表。
setenv(MULTI-LINE-LIST)
每行包含一個NAME = VALUE環(huán)境變量設(shè)置,該設(shè)置將用于所有測試命令調(diào)用以及將sdist軟件包安裝到虛擬環(huán)境中。
PYTHONHASHSEED的特殊處理
默認(rèn)情況下,tox將測試命令的PYTHONHASHSEED設(shè)置為調(diào)用tox時生成的隨機(jī)整數(shù)??梢栽趖ox.ini中覆蓋每個測試環(huán)境的哈希種子值。 whitelist_externals(MULTI-LINE-LIST)
將非virtualenv命令列入白名單,避免警告。
deps(MULTI-LINE-LIST)
在項目創(chuàng)建前安裝到虛擬環(huán)境中的環(huán)境依賴項。
install_command=python -m pip install {opts} {packages}(ARGV)
將軟件包安裝到虛擬環(huán)境中; 被測軟件包及其依賴項(由deps定義)。
usedevelop=false(true|false)
使用“setup.py develop”以開發(fā)模式安裝當(dāng)前軟件包,而不是從sdist安裝。
commands(ARGVLIST)
用于測試的命令。每行被解釋為一個命令,命令將按順序逐個執(zhí)行,直到其中之一失敗(它們的退出代碼為非零)或全部成功為止。注意:虛擬環(huán)境的二進(jìn)制路徑(位于其中的bin文件夾)位于os PATH之前。
basepython(NAME-OR-PATH)
用于創(chuàng)建虛擬環(huán)境的Python解釋器的名稱或路徑,確定將創(chuàng)建虛擬隔離環(huán)境的python。
passenv(SPACE-SEPARATED-GLOBNAMES)
執(zhí)行測試命令時,應(yīng)將環(huán)境變量通配符名稱列表從tox調(diào)用環(huán)境復(fù)制到測試環(huán)境。如果在tox調(diào)用環(huán)境中不存在指定的環(huán)境變量,則將其忽略。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。