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.