Многие настройки pytest можно задать в файле конфигурации , который по соглашению находится в корневом каталоге вашего репозитория или в папке с вашими тестами.
Краткий пример файлов конфигурации, поддерживаемый pytest:
Добавьте указанное OPTSв набор аргументов командной строки, как если бы они были указаны пользователем. Пример: если у вас есть содержимое этого ini-файла:
выдача на самом деле означает:pytest test_hello.py
По умолчанию параметры не добавляются.
В нашей системе в базовый pytest.ini файл в строку addopts добавлены
--alluredir - для сохранения отчётов Allure по умолчанию
--reruns - для перезапуска упавших тестов
filterwarnings
Задает список фильтров и действий, которые следует предпринять для совпадающих предупреждений. По умолчанию все предупреждения, выдаваемые во время тестового сеанса, будут отображаться в сводке в конце тестового сеанса.
Это говорит pytest игнорировать предупреждения об устаревании и превращать все остальные предупреждения в ошибки. Дополнительную информацию см. в разделе «Захват предупреждений» .
junit_family
Новое в версии 4.2.
Изменено в версии 6.1: значение по умолчанию изменено на xunit2.
xunit1(или legacy): производит вывод в старом стиле, совместимый с форматом xunit 1.0.
xunit2: производит вывод в стиле xunit 2.0 , который должен быть более совместимым с последними версиями Jenkins. Это значение по умолчанию .
python_files
Один или несколько шаблонов файлов в стиле Glob, определяющих, какие файлы Python считаются тестовыми модулями. Найдите несколько шаблонов шаров, добавив пробел между шаблонами:
Или по одному на строку:
По умолчанию файлы, соответствующие test_*.pyи *_test.py, будут считаться тестовыми модулями.
python_classes
Один или несколько префиксов имен или шаблонов в стиле глобусов, определяющих, какие классы рассматриваются для тестовой коллекции. Найдите несколько шаблонов шаров, добавив пробел между шаблонами. По умолчанию pytest будет рассматривать любой класс с префиксом Testкак тестовую коллекцию. Вот пример того, как собирать тесты из классов, оканчивающихся на Suite:
Обратите внимание, что unittest.TestCaseпроизводные классы всегда собираются независимо от этого параметра, так как unittestдля сбора этих тестов используется собственная структура сбора.
python_functions
Один или несколько префиксов имен или шаблонов glob, определяющих, какие тестовые функции и методы считаются тестами. Найдите несколько шаблонов шаров, добавив пробел между шаблонами. По умолчанию pytest будет рассматривать любую функцию с префиксом testкак тест. Вот пример того, как собирать тестовые функции и методы, оканчивающиеся на _test:
Обратите внимание, что это не влияет на методы, которые живут в производном классе, поскольку для сбора этих тестов используется собственная структура коллекции.unittest .TestCaseunittest
Когда используются аргументы командной строки --strict-markersили --strict, разрешены только известные маркеры, определенные в коде ядром pytest или каким-либо плагином.
Вы можете перечислить дополнительные маркеры в этом параметре, чтобы добавить их в белый список, и в этом случае вы, вероятно, захотите добавить --strict-markers, чтобы addopts избежать будущих регрессий:
Примечание
Использование --strict-markersявляется весьма предпочтительным. --strictбыл сохранен только для обратной совместимости и может сбивать с толку других, поскольку он применяется только к маркерам, а не к другим параметрам.
Если вас интересует больше информации о параметрах файл , переходите в официальную документацию API Reference