Отмените выбор теста pytest в самом тесте - PullRequest
1 голос
/ 16 июня 2020

Я уже знаю, что мы можем использовать метки, а затем вызывать pytest с -m для выполнения только определенных тестов

мой вопрос: есть ли способ пометить тест, чтобы этот тест не выполнялся без добавления any -m при вызове pytest?

РЕДАКТИРОВАТЬ:

Я думаю примерно так:

  1. пометьте тест специальным (я не знаю, существует ли он, поэтому этот вопрос ) пометьте тест thespecialtest.py как @pytest.mark.notselect

, затем запустите тесты, как всегда: pytest исключит этот тест.

Если я хочу запустить этот тест, я могу сделать это явно pytest thescpecialtest.py

Я знаю, что лучший и самый простой способ - просто использовать -m для вызова pytest, но я хочу спросить если есть вариант, где в этом нет необходимости

1 Ответ

0 голосов
/ 16 июня 2020
Параметр

-m, вероятно, наиболее удобен для этого варианта использования.

Однако вы можете выбрать, какие тесты запускать на основе имен с помощью параметра -k , который в основном то же, что и параметр -m, но вы выбираете тестовые примеры на основе их имен, а не оценок.

Другой вариант - вы можете изменить процесс обнаружения теста , чтобы вы могли, например, сообщить pytest для сбора и выполнения только функций, соответствующих определенному шаблону имени, например, вы добавляете в свой pytest.ini:

[pytest]
python_functions = *_check

, который сообщает pytest собирать и выполнять только функции, соответствующие этому шаблону glob. Вы также можете сделать это с классами и файлами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...