Pytest - zaczynając od testu podstawowego

Teraz zaczniemy od naszego pierwszego programu pytest. Najpierw utworzymy katalog, a tym samym utworzymy nasze pliki testowe w katalogu.

Wykonajmy kroki pokazane poniżej -

  • Utwórz nowy katalog o nazwie automation i przejdź do katalogu w linii poleceń.

  • Utwórz plik o nazwie test_square.py i dodaj poniższy kod do tego pliku.

import math

def test_sqrt():
   num = 25
   assert math.sqrt(num) == 5

def testsquare():
   num = 7
   assert 7*7 == 40

def tesequality():
   assert 10 == 11

Uruchom test za pomocą następującego polecenia -

pytest

Powyższe polecenie wygeneruje następujące dane wyjściowe -

test_square.py .F
============================================== FAILURES 
==============================================
______________________________________________ testsquare 
_____________________________________________
   def testsquare():
   num=7
>  assert 7*7 == 40
E  assert (7 * 7) == 40
test_square.py:9: AssertionError
================================= 1 failed, 1 passed in 0.06 seconds 
=================================

Zobacz pierwszą linię wyniku. Wyświetla nazwę pliku i wyniki. F oznacza niepowodzenie testu, a kropka (.) Oznacza sukces testu.

Poniżej możemy zobaczyć szczegóły nieudanych testów. Pokaże, przy której instrukcji test się nie powiódł. W naszym przykładzie 7 * 7 jest porównywane pod kątem równości z 40, co jest błędne. Na koniec możemy zobaczyć podsumowanie wykonania testu, 1 nie powiódł się i 1 przeszedł.

Funkcja tesequality nie jest wykonywana, ponieważ pytest nie uzna jej za test, ponieważ jej nazwa nie ma formatu test*.

Teraz wykonaj poniższe polecenie i ponownie zobacz wynik -

pytest -v

-v zwiększa szczegółowość.

test_square.py::test_sqrt PASSED
test_square.py::testsquare FAILED
============================================== FAILURES 
==============================================
_____________________________________________ testsquare 
_____________________________________________
   def testsquare():
   num = 7
>  assert 7*7 == 40
E  assert (7 * 7) == 40
test_square.py:9: AssertionError
================================= 1 failed, 1 passed in 0.04 seconds 
=================================

Teraz wynik jest bardziej wyjaśniający, jeśli chodzi o test, który się nie powiódł i test, który przeszedł.

Note - polecenie pytest wykona wszystkie pliki formatu test_* lub *_test w bieżącym katalogu i podkatalogach.