我正在開發一個私人Python庫,並且我正在其中使用其他公共庫。我想為我的自訂庫使用的每個公共庫定義相容版本的間隔。
我已經實作了測試來檢查該函式庫是否正常運作。只需找到一種方法來在每個公共庫的每個組合中測試我的程式碼。
我嘗試使用 tox,但似乎我必須在 tox.ini 檔案中編寫每個庫的組合,以便它可以使用版本不同的庫創建環境。有沒有一種自動化的方法可以做到這一點?
例如:我的開發環境有以下函式庫,並且通過了我的測試。
numpy==1.24.3
matplotlib==3.7.3
我想知道是否可以測試以下組合
以自動化的方式。
感謝所有在評論部分幫助過我的人。正如 @sinoroc 所建議的,使用 nox 以非常直觀的方式解決了我的問題。儘管這不是常見的做法,但我將分享我在問題中給定範例中使用的解決方案,以防有人像我一樣需要測試他們的專案。
noxfile.py 中的程式碼如下。
import nox @nox.session(name = "test_sample") @nox.parametrize("numpy", ["1.24.3", "1.24.2"]) @nox.parametrize("matplotlib", ["3.7.3", "3.7.2"]) def tests(session, numpy, matplotlib): session.install(f"numpy=={numpy}", f"matplotlib=={matplotlib}") session.run("pytest")
參數化裝飾器定義將使用的版本。由於我對兩個不同的函式庫使用了兩個不同的版本,因此不同版本組合會得到4(2*2)個測試結果。
注意:我觀察到 nox 使用 python -m pip 指令來安裝函式庫。因此,如果我們測試的公共庫之間具有共同的依賴關係,則可能會出現覆蓋問題,即在安裝另一個庫時,給定版本的庫被覆蓋。我找不到解決方案,但這已經是版本測試所能得到的最精確的了。
以上是如何在 python 中檢查我的套件的相容庫版本間隔?的詳細內容。更多資訊請關注PHP中文網其他相關文章!