Подтвердить что ты не робот

Как сказать py.test пропустить определенные каталоги?

Я попытался использовать опцию norecursedirs внутри setup.cfg, чтобы указать py.test не собирать тесты из определенных каталогов, но, похоже, он игнорирует его.

[tool:pytest]
norecursedirs=lib/third

Когда я запускаю py.test я вижу, как он получает тесты из lib/third !

4b9b3361

Ответ 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 нет.