Pytest: как переопределить параметр командной строки в программе Python? - PullRequest
1 голос
/ 14 октября 2019

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

В результате я намерен навсегда установить обратную трассировку pytest. Однако, согласно документации, единственный способ сделать это - добавить дополнительный аргумент командной строки при запуске бегунка теста:

-tb=native

Я бы хотел, чтобы мой тест всегда использовал встроенную трассировку независимо откак это было запущеноМожно ли использовать API TestCase для этого?

Большое спасибо за вашу помощь.

Ответы [ 2 ]

2 голосов
/ 14 октября 2019

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

[pytest]
addopts = --tb=native

Обратите внимание на двойные дефисы с tb;Я использую pytest 4.6.4, и вот как он работает для меня.

Кроме того, обратитесь к pytest docs для другой альтернативы, изменив переменную env PYTEST_ADDOPTS.

0 голосов
/ 14 октября 2019

Я не уверен, как вы можете сделать это, используя pytest, и я не знаком с этим пакетом. С учетом вышесказанного вы всегда можете создать функцию bash , чтобы выполнить это:

function pytest() {
  pytest -tb=native "$@"
}

Символ "$@" будет передавать все аргументы, следующие за pytк функции (вроде как *args в python), поэтому запуск pyt arg1 arg2 ... argn будет таким же, как запуск pytest -tb=native arg1 arg2 ... argn

Если вы не знакомы с созданием ярлыков bash, см. этот вопрос .

Обновление

Я неправильно понял и подумал, что OP звонит pytest из кли. Вместо создания функции pyt, если вы переопределите pytest напрямую, PyCharm может вызвать вместо нее вашу версию bash (хотя я не совсем уверен).

Как говорится, ответ Янива кажется выше этого, если он работает.

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