Skip to content
Nikolaev Dmitriy edited this page May 13, 2023 · 7 revisions

Установка Pytest

pip install pytest

Аргументы запуска

pytest test.py::test_func                  # запустить конкретный тест в модуле используя уникальный идентификатор узла
pytest test.py::TestClass::test_method     # запустить конкретный тест в модуле используя уникальный идентификатор класса
pytest -s                                  # выводит в консоль все print()-сообщения
pytest -v                                  # выводит расширенную информацию о тесте //verbose
pytest -l                                  # выводит значения переменных в момент ошибки
pytest -k "http or quick"                  # запустить группу тестов на основе совпадения подстроки в имени функции/метода теста //-k <expr>
pytest -m dev                              # запустит все тесты с маркой dev
pytest --co                                # позволяет вывести все доступные тесты в директории
pytest --markers                           # вывод всех доступных марок в проекте
pytest --fixtures                          # выводит список всех доступных фикстур
pytest -durations=x                        # вывод x самых долгих тестов
pytest --setup-plan                        # тесты не запускает, но выводит план запуска тестов
pytest --version                           # показывает, откуда был импортирован pytest
pytest -h | --help                         # показать справку по параметрам командной строки и конфигурационного файла

Марки

Марки буквально позволяют маркировать тесты, разделять их на группы, управлять отдельными тестами и группами.

Краткий список марок:

  • Марка skip позволяет пропустить тест и не выполнять его содержимое. С помощью аргумента reason следует указывать причину пропуска

    @pytest.mark.skip()
    @pytest.mark.skip(reason="Этот тест еще не завершен")
  • Марка xfail позволяет указать, что тест заведомо может не работать. При этом тест запустится. Причину также указывают с помощью аргумента reason, а аргумент strict заставляет тест упасть, если ошибка не произошла сама. Аргумент raises заставляет тест отработать только в том случае, если в тесте есть какой-то конкретный тип ошибки

    @pytest.mark.xfail()
    @pytest.mark.xfail(reason="", strict=True, raises="AssertionError")

Clone this wiki locally