49
votes

Une erreur tout en essayant d'exécuter des tests sur Python 3.10 avec PyTest

Si j'essaie d'exécuter des tests à l'aide de pytest avec Python 3.10, j'ai obtenu l'erreur suivante:

TypeError: required field "lineno" missing from alias

Google dit que c'est un problème connu, mais je n'ai trouvé aucun moyen pour le résoudre.
Les tests commencent bien si je les lance avec 3,9


0 commentaires

2 Réponses :


55
votes

4 commentaires

J'utilise Pytest version 7.1.2 et j'ai toujours le même problème, comment puis-je résoudre ce problème localement?


@John J'ai pu résoudre ce problème en mettant à niveau PyTest vers la version 7.1.2 .


Des trucs étranges qui se passent mec


Cela a résolu le problème pour moi. J'ai exécuté poésie ajouter --dev pytest @ dernier as poésie new contrainte pytest à ^ 5.2 par défaut.



10
votes

Mettez à jour le pytest pYPI:

pip install -U pytest


4 commentaires

J'ai toujours le même problème, est-ce une sortie normale après cet appel? - $ pip install -u pytest défautant à l'installation des utilisateurs parce que les packages de sites normaux ne sont pas inscrits, d'autres sont que l'exigence est déjà satisfaite


@John Je suppose que votre problème est lié au pip lui-même. Essayez de mettre à jour le pip via python -m pip install -u pip ou installez le pytest via python -m pip install -u pytest


Je pense que c'est la bonne réponse (que la solution consiste à mettre à jour PyTest) mais la commande à exécuter peut être améliorée. Puisque nous utilisons de la poésie pour gérer les dépendances de notre projet, y compris ses dépendances de développement, nous devons exécuter la poésie supprime - dev pytest && poés au projet lors de sa création, puis ajoutez la dernière version. Pour moi, cela signifiait passer de 5.4.3 à 7.1.2 . Ce processus a également supprimé les anciennes dépendances transitives de PYTEST, puis a ajouté les nouvelles dépendances transitives pour la nouvelle version.


Lorsque j'ai fait les étapes ci-dessus, puis j'ai exécuté la poésie exécute pytest , cela a fonctionné pour moi. Comme il s'agissait d'un tout nouveau projet sans code source encore, et juste le test initial, créé automatiquement, ma sortie a déclaré: 1 a passé dans 0.01s