Sobes.tech
Junior — Middle

Jak PyTest określa, które funkcje lub przypadki testowe należy wykonać podczas testowania?

sobes.tech AI

Odpowiedź od AI

PyTest automatycznie wykrywa funkcje i metody testowe zgodnie z określonymi zasadami nazewnictwa i struktury. Domyślnie szuka:

  • Funkcji, których nazwy zaczynają się od test_.
  • Metod w klasach, których nazwy zaczynają się od test_, pod warunkiem, że klasa również zaczyna się od Test i nie dziedziczy po unittest.TestCase.
  • Plików, których nazwy zaczynają się od test_ lub kończą na _test.py.

W ten sposób PyTest skanuje katalogi, znajduje takie pliki, importuje je i uruchamia wszystkie funkcje i metody spełniające te kryteria. Ułatwia to organizację testów bez konieczności ich jawnego rejestrowania.

Przykład:

# test_example.py

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

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

Po uruchomieniu pytest te dwa testy zostaną wykryte i wykonane.