2016-12-28 22 views
5

Мы используем pytest для тестирования нашего проекта и включили --doctest-modules по умолчанию, чтобы собрать все наши доктрины из всего проекта.Могу ли я сделать модуль доктрины pytest игнорировать файл?

Однако есть один wsgi.py, который не может быть импортирован во время сбора проб, но я не могу получить pytest, чтобы его игнорировать.

Я попытался положить его в список collect_ignore в conftest.py, но, видимо, модуль doctest не использует этот список.

Единственное, что работает, это положить весь каталог wsgi.py в norecursedirs в файл конфигурации pytest, но это, очевидно, скрывает всю директорию, которую я не хочу.

Есть ли способ заставить модуль doctest игнорировать только определенный файл?

ответ

2

Вы можете использовать hook для условного исключения некоторых папок из обнаружения теста. https://docs.pytest.org/en/latest/writing_plugins.html

def pytest_ignore_collect(path, config): 
    """ return True to prevent considering this path for collection. 
    This hook is consulted for all files and directories prior to calling 
    more specific hooks. 
    """