Как сказать py.test пропустить определенные каталоги?
Я попытался использовать опцию norecursedirs
внутри setup.cfg, чтобы указать py.test не собирать тесты из определенных каталогов, но, похоже, он игнорирует его.
[tool:pytest]
norecursedirs=lib/third
Когда я запускаю py.test
я вижу, как он получает тесты из lib/third
!
Ответы
Ответ 1
Я решил загадку: если в одном из возможных файлов конфигурации (pytest.ini
, tox.ini
и setup.cfg
) найден фрагмент pytest, pytest не будет искать других, поэтому обязательно определите py. параметры теста в одном файле.
Я бы предложил использовать setup.cfg
.
Ответ 2
py.test --ignore=somedir
работал у меня
Ответ 3
Вы можете использовать
py.test -k 'not third'
который исключает все содержимое "третьего" каталога.
Ответ 4
norecursedirs
должен работать. Проверьте, есть ли у вас файл pytest.ini или другие файлы setup.cfg. Как вы вызываете py.test
?
Ответ 5
Если у вас есть несколько каталогов с разными родителями, вы можете указать разные параметры --ignore
:
py.test --ignore=somedir --ignore=otherdir --ignore=etcdir
- новая опция: --ignore предотвратит сбор указанного пути.
Может быть указан несколько раз.
Ответ 6
Если вы используете setup.cfg, вы должны использовать [tool:pytest]
в соответствии с http://doc.pytest.org/en/latest/пример/pythoncollection.html
# содержание pytest.ini
# также можно определить в файле tox.ini или setup.cfg, хотя раздел
# имя в файлах setup.cfg должно быть "tool: pytest" `` `
Ответ 7
В моем случае проблема заключалась в отсутствии символа подстановки. У меня работает следующее:
[tool:pytest]
norecursedirs = subpath/*
тогда как просто norecursedirs = subpath
нет.