Paramètres par défaut pour la commande py.test


Je ne fais plus de tests unitaires sans pytest, et je me retrouve souvent à rentrer les mêmes paramètres de la commande encore et encore. Parfois, quand j’utilise des wrappers tels que django-pytest et pytest-django (ça s’invente pas), je ne peux même pas passer d’arguments directement à py.test.

On peut y remédier en créant un fichier de config à la racine du projet. Nommez le fichier tox.ini, car c’est aussi le nom du fichier de configuration de l’outil de tests tox, et il est compatible, donc autant avoir un seul format. Dedans, créez une section [pytest], et vous pouvez configurer la lib là-dedans.

En l’occurrence, le settings “addopts”, pour “add options” (ajouter options), permet de spécifier les options de la ligne de commande à toujours ajouter à py.test.

Mon fichier contient toujours au moins ceci :

[pytest]
addopts = --ignore="virtualenv" --capture=no

Ainsi py.test ignore toujours le dossier virtualenv (qui est un lien vers l’env virtuel de mon projet) car je ne veux pas qu’il lance les tests de ce dossier. Et il ne capture pas stdout, ce qui me permet d’utiliser ipdb pendant les tests unitaires. Parfois j’utilise aussi --maxfail=1 quand je veux qu’il s’arrête dès la première erreur rencontrée.

Pour ne pas aller dans ce dossier et ne pas capturer stdout.

3 thoughts on “Paramètres par défaut pour la commande py.test

  • Soli

    Pour ceux qui n’utilisent pas tox, pytest.ini ou setup.cfg sont aussi regardés…

  • residante

    Ah oui effectivement lorsqu’on utilise tox, ça fait un fichier en moins. Pas con. Merci pour l’astuce.

Comments are closed.

Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.