Pytest - A partire dal test di base

Ora inizieremo con il nostro primo programma pytest. Creeremo prima una directory e quindi creeremo i nostri file di prova nella directory.

Seguiamo i passaggi mostrati di seguito:

  • Crea una nuova directory denominata automation e accedi alla directory nella riga di comando.

  • Crea un file denominato test_square.py e aggiungi il codice seguente a quel file.

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

Esegui il test utilizzando il seguente comando:

pytest

Il comando precedente genererà il seguente output:

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 
=================================

Vedi la prima riga del risultato. Visualizza il nome del file e i risultati. F rappresenta un fallimento del test e il punto (.) Rappresenta un successo del test.

Di seguito, possiamo vedere i dettagli dei test falliti. Mostrerà in quale affermazione il test è fallito. Nel nostro esempio, 7 * 7 viene confrontato per l'uguaglianza contro 40, il che è sbagliato. Alla fine, possiamo vedere il riepilogo dell'esecuzione del test, 1 non riuscito e 1 superato.

La funzione tesequality non viene eseguita perché pytest non la considererà come un test poiché il suo nome non è del formato test*.

Ora, esegui il comando seguente e guarda di nuovo il risultato -

pytest -v

-v aumenta la verbosità.

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 
=================================

Ora il risultato è più esplicativo sul test non riuscito e sul test superato.

Note - Il comando pytest eseguirà tutti i file di formato test_* o *_test nella directory e nelle sottodirectory correnti.