Skip to content

pytest

  • pytest - лучший тестовый фреймворк

Конфиг

  • pytest.ini / setup.cfg
[pytest]
; Запуск доктестов
addopts = --doctest-modules

pytest-dotenv

[pytest]
env_files =
    .env
    .test.env

Плагины

  • pytest-xdist - запускает тесты параллельно, используя новую опцию -n auto
    • на практике чет не оч робит, скорее замедляет выполнение
    • мб на 300 тестах, как у меня, это так и будет плохо робить, видимо, надо чтоб под 1000 тестов
    • и ещё хз как это с бд будет робить, не будет ли конфликтов/гонок?

Как быть когда в ошибке трейс не отображается полностью?

Пример:

...
    my_conftestmodules = pm._getconftestmodules(fspath)
.venv2\lib\site-packages\_pytest\config\__init__.py:431: in _getconftestmodules
    mod = self._importconftest(conftestpath.realpath())
.venv2\lib\site-packages\_pytest\config\__init__.py:470: in _importconftest
    raise ConftestImportFailure(conftestpath, sys.exc_info())
ConftestImportFailure: (local('C:\\Users\\potyk\\PycharmProjects\\automation-gae\\reborn_lol\\notifications_\\order_\\tests\\email_\\conftest.py'), (<type 'exceptions.ImportError'>, ImportError('No module named config.config',), <traceback object at 0x00000000093572C8>))

Из примера выше не оч понятно где конкртено ошибка, чтобы увидеть трейс полностью нам надо:

  1. Поставить брейкпоинт на месте ошибки: .venv2\lib\site-packages\_pytest\config\__init__.py:470
  2. Распечатать трейсбек руками: traceback.extract_tb(sys.exc_traceback)