Sobes.tech
Back to questions
Junior — Middle
81

Каким образом PyTest определяет, какие тестовые функции или случаи следует выполнить в процессе тестирования?

Companies where asked
РостелекомРостелеком

Answer from AI

sobes.tech AI

PyTest автоматически обнаруживает тестовые функции и методы по определённым правилам именования и структуре. По умолчанию, он ищет:

  • Функции, имена которых начинаются с test_.
  • Методы внутри классов, имена которых начинаются с test_, при условии, что класс тоже начинается с Test и не наследуется от unittest.TestCase.
  • Файлы с именами, начинающимися с test_ или заканчивающимися на _test.py.

Таким образом, PyTest сканирует директории, находит такие файлы, импортирует их и запускает все функции и методы, соответствующие этим критериям. Это позволяет легко организовывать тесты без необходимости явно регистрировать их.

Пример:

# test_example.py

def test_sum():
    assert sum([1, 2, 3]) == 6

class TestMath:
    def test_multiply(self):
        assert 2 * 3 == 6

При запуске pytest эти два теста будут обнаружены и выполнены.