У PyCharm є дуже корисна функція, яка дозволяє зупиняти виконання програми в тому місці, де виникає виключення, щоб ви могли дослідити його причину. Проте, при виконанні тестів pytest через PyCharm ця функція працює не так, як ми очікуємо.
Коли тест, написаний у форматі pytest, видає виключення, PyCharm показує лише повідомлення про помилку в консолі, але не спрацьовує зупинка виконання програми. Це може значно ускладнити відлагодження, особливо коли виникає багато виключень у великих тестових наборах.
Звичайно, pytest має власний механізм обробки виключень, який дозволяє виводити інформацію про помилки, але використовувати його в поєднанні з функцією зупинки виконання програми у PyCharm було б набагато зручніше. Чи є спосіб налаштувати pytest таким чином, щоб при виникненні виключення він спрацьовував як звичайний Python скрипт, зупиняючи виконання програми та дозволяючи відлагодження в PyCharm?
1 |
Щоб налаштувати відлагодження виключень pytest в PyCharm, вам потрібно додати параметр --pdb до виклику pytest у вашому конфігураційному файлі pytest.ini або pytest.cfg. Якщо такого файлу немає, ви можете створити його в кореневій папці вашого проекту або в папці з тестами. |
Щоб створити або відредагувати файл pytest.ini або pytest.cfg, додайте до нього наступний вміст:
1 2 |
[pytest] addopts = --pdb |
Цей параметр дозволяє автоматично викликати зупинку виконання програми у PyCharm у разі виникнення виключення під час виконання тесту. Після цього ви зможете дослідити стек викликів та інші дані про помилку прямо в середовищі розробки, що значно спростить відлагодження тестів.
Зверніть увагу, що при використанні цього параметру ви можете бачити додатковий вихід в консолі pytest, пов’язаний з викликом зупинки виконання програми.