Задание 1: Правила именования файлов и функций тестов в pytest
Какие правила именования файлов и функций тестов используются в pytest? Перечислите их. Приведите пример правильно названного файла и функции теста.
Задание 2: Фикстура pytest для подготовки общего ресурса
Как использовать фикстуры в pytest для подготовки общего ресурса для тестов?
Напишите фикстуру, которая создаёт экземпляр класса Calculator, и используйте её в двух тестах — для метода sum и для метода avg.
Задание 3: Проверка, что метод выбрасывает ожидаемую ошибку
Как проверить, что метод выбрасывает ожидаемую ошибку в pytest?
Напишите тест, который проверяет: при вызове calculator.div(10, 0) будет поднято исключение ArithmeticError с текстом "На ноль делить нельзя".
Задание 4: Маркировки для управления тестами
Как использовать маркировки в pytest для управления тестами? Напишите примеры для:
- Пропуска теста (
@pytest.mark.skip) - Условного пропуска (
@pytest.mark.skipif) — при Python ниже 3.8 - Пользовательской маркировки
positive_testи запуска тестов по ней
Задание 5: Сравнение pytest с ручным тестированием
Перечислите преимущества автоматизированного unit-тестирования с pytest по сравнению с ручным тестированием (подход с assert в скрипте). Назовите не менее четырёх.