Maison > Article > développement back-end > Comment vérifier l'intervalle de version de la bibliothèque de compatibilité de mon package en python ?
Je développe une bibliothèque Python privée et j'y utilise d'autres bibliothèques publiques. Je souhaite définir un intervalle de version compatible pour chaque bibliothèque publique utilisée par ma bibliothèque personnalisée.
J'ai mis en place des tests pour vérifier si la bibliothèque fonctionne correctement. J'ai juste besoin de trouver un moyen de tester mon code dans chaque combinaison de chaque bibliothèque publique.
J'ai essayé d'utiliser tox mais il semble que je doive écrire une combinaison de chaque bibliothèque dans le fichier tox.ini afin qu'il puisse créer l'environnement avec différentes versions des bibliothèques. Existe-t-il un moyen automatisé de procéder ?
Par exemple : mon environnement de développement contient les bibliothèques suivantes et elles ont réussi mes tests.
numpy==1.24.3
matplotlib==3.7.3
J'aimerais savoir s'il est possible de tester la combinaison suivante
De manière automatisée.
Merci à tous ceux qui m'ont aidé dans la section commentaires. Comme @sinoroc l'a suggéré, l'utilisation de nox a résolu mon problème de manière très intuitive. Bien que ce ne soit pas une pratique courante, je partagerai la solution que j'ai utilisée dans l'exemple donné dans la question au cas où quelqu'un comme moi aurait besoin de tester son projet.
Le code dans noxfile.py est le suivant.
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")
Le décorateur paramétré définit la version qui sera utilisée. Puisque j'ai utilisé deux versions différentes de deux bibliothèques différentes, j'obtiendrais 4 (2*2) résultats de tests pour différentes combinaisons de versions.
Remarque : J'ai observé que nox utilise la commande python -m pip pour installer les bibliothèques. Par conséquent, s’il existe des dépendances communes entre les bibliothèques publiques que nous testons, des problèmes de couverture peuvent survenir lorsqu’une version donnée de la bibliothèque est écrasée lorsqu’une autre bibliothèque est installée. Je ne trouve pas de solution, mais c'est aussi précis que les tests de version peuvent l'être.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!