2017-07-01 16 views
2

通常一個Python庫取決於多種其他的依賴和它指定一個像foobar>=2.0.1如何使用Python自動測試更新後的依賴關係?

我正在尋找一種方法來檢查,如果依賴的新版本都引入不兼容與否,並最終安全使用範圍內,這些依賴關係此信息。

如果他們打破東西是很容易的添加類似!=2.0.2禁止這些版本。

更艱難的標記驗證,就像標註,它通過測試與版本的事實。

請注意,我正在尋找一種方式來自動完成這個過程。另外請注意,將依賴關係升級到通過測試的最新版本並不是一個可接受的選項,因爲它可能引入依賴關係死鎖。

+0

我不確定您將在哪裏進行此類測試,但在我的工作生活中,我們的CI管道負責此操作,並且我們有一個管道負責依賴更新。 – idjaw

+0

最終,這會的工作方式,是是否有新的版本發佈時,分支與在CI這些依賴關係創建,測試,對其運行。我們得到我們的反饋並決定我們是否要合併。這些更新會傳播到所有將使用此依賴關係的項目,因此全部都是「一次」完成的。 – idjaw

+0

@idjaw測試的結果是什麼?你在哪裏保存結果?你更新requirements.txt文件嗎?尋找更新的版本和觸發版本不是問題,到目前爲止的問題是我不知道如何存儲和維護這些信息。 – sorin

回答

1

我會建議使用toxhttps://tox.readthedocs.io/en/latest/

TOX可以創建多個虛擬ENVS與不同的相關

假設你想從1.0.0版本測試依賴foobar直到2.0.0

測試

您可以使用tox定義一個10個不同的測試環境,只需運行tox即可觸發10個不同的測試,在10個獨立環境中運行,其中包括foobar 1.0,foobar 1.1foobar 2.0

請在tox

看看matrix of dependencies如果它需要太多的時間來運行10次測試套件10孤立ENV,你也許嘗試使用detox,可以通過運行的所有有效地利用多個CPU可能的並行活動 detox請參閱https://github.com/tox-dev/detox

相關問題