J'ai essayé d'utiliser l' norecursedirs
option dans setup.cfg pour dire à py.test de ne pas collecter de tests à partir de certains répertoires mais il semble qu'il l'ignore.
[tool:pytest]
norecursedirs=lib/third
Quand je cours, py.test
je vois comment il obtient des tests de l'intérieur lib/third
!
python
unit-testing
pytest
Sorin
la source
la source
py.test
et lespytest
deux exécutent des tests et sont des bêtes différentes. Étrange maispytest
est celui qui échoue car il ne charge pas les exclusions à partir de[pytest]
.pytest
est de logilab. Tu veuxpy.test
.nosecuredirs=lib/third/*
[pytest] norecursedirs = resources
enpytest.ini
fait un tour de 💪!Réponses:
py.test --ignore=somedir
travaillé pour moila source
--ignore
peut être spécifié plusieurs fois pour ignorer plusieurs répertoires-k
option comme le montre une autre réponse ci-dessous. Voir «Exécuter des tests par expressions de mots-clés» sur docs.pytest.org/en/latest/… . Les marques peuvent également être utiles ici. Marquez vos tests comme "lents", etc., puis utilisez-k "not slow"
--ignore-glob
pour ignorer les chemins de fichiers de test basés sur des caractères génériques de style shell Unix. Par exemple--ignore-glob=**/sandbox/*
, ignorera tous les fichiers dans n'importe quelsandbox
dossier.Si vous avez plusieurs répertoires avec des parents différents, vous pouvez spécifier différents
--ignore
paramètres:py.test --ignore=somedir --ignore=otherdir --ignore=etcdir
la source
J'ai résolu le mystère: si une section pytest est trouvée dans l'un des fichiers de configuration possibles (
pytest.ini
,tox.ini
etsetup.cfg
), pytest n'en recherchera pas d'autres, alors assurez-vous de définir les options py.test dans un seul fichier.Je suggérerais d'utiliser
setup.cfg
.la source
setup.cfg
? La documentation actuelle semble recommander les deux autres.ini
fichier, vous devez le spécifier avecpytest -c pytest.ini
. pour une raison quelconque, lesetup.cfg
contenu a été récupéré automatiquement.Vous pouvez utiliser
py.test -k 'not third'
qui exclut tout le contenu du «troisième» répertoire.
la source
norecursedirs
devrait marcher. Vérifiez si vous disposez d'un pytest.ini ou d'autres fichiers setup.cfg. Comment invoquez-vouspy.test
?la source
setup.cfg
avec le bon[pytest]
et le norecorsedirs à l'intérieur, mais il semble être ignoré, et à la place, il recherchera tous les fichiers.Dans mon cas, le problème était le caractère générique manquant. Ce qui suit fonctionne pour moi:
alors que
norecursedirs = subpath
non.la source
Si vous utilisez setup.cfg, vous devez utiliser
[tool:pytest]
selon http://doc.pytest.org/en/latest/example/pythoncollection.htmlla source
Pour utiliser
pytest.ini
(ce qui est recommandé, à moins que vous n'utilisieztox
dans quel cas celatox.ini
aurait du sens), appelezpytest
avecpytest -c pytest.ini
.Afin d'empêcher mon échantillon
not_me_1.py
etnot_me_2.py
d'être testé ou pelucheux, monpytest.ini
est comme suit:la source