Організація та запуск тестів з Pytest
Свайпніть щоб показати меню
Коли потрібно писати чистий, виразний і легко підтримуваний тестовий код на Python, популярним вибором є pytest. На відміну від вбудованого фреймворку unittest, який дотримується жорсткої, класової структури та вимагає використання спеціальних методів перевірки, таких як self.assertEqual, pytest дозволяє використовувати стандартні оператори assert Python у простих функціях. Це значно зменшує кількість шаблонного коду та робить тести більш лаконічними, оскільки більше не потрібно обгортати логіку у складні ієрархії класів чи запам’ятовувати десятки специфічних для фреймворку назв перевірок лише для перевірки простого результату.
Однією з найпотужніших можливостей pytest є система автоматичного пошуку тестів. Достатньо просто запустити pytest у директорії вашого проєкту, і він автоматично знайде всі файли, що відповідають шаблону test_*.py або *_test.py, та виконає всі функції в цих файлах, які починаються з test_. Це означає, що вам не потрібно вручну вказувати, які тести запускати — pytest зробить це за вас.
Ще однією важливою перевагою є використання фікстур. Фікстури відповідають за підготовку та очищення ресурсів, необхідних для тестів, таких як тимчасові файли чи підключення до бази даних, у зручний для повторного використання спосіб. Достатньо задекорувати функцію як @pytest.fixture і потім вказати її як вхідний параметр у тестових функціях. Це робить код модульним і позбавляє від дублювання логіки підготовки.
Щоб почати роботу з pytest, спочатку потрібно встановити його. Використайте наступну команду у вашому терміналі:
pip install pytest
Це завантажить і встановить останню версію pytest, щоб ви могли одразу почати писати та запускати свої тести.
Нижче наведено практичний приклад використання для написання функціональних тестів і визначення багаторазових фікстур.
import pytest
# A simple function to test
def add(a, b):
return a + b
# Define a fixture that provides test data
@pytest.fixture
def sample_numbers():
return (3, 5)
# Test function using the fixture
def test_add_with_fixture(sample_numbers):
a, b = sample_numbers
result = add(a, b)
assert result == 8
# Another simple test function
def test_add_negative_numbers():
assert add(-2, -4) == -6
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат