Pytest: comenzando con la prueba básica

Ahora, comenzaremos con nuestro primer programa Pytest. Primero crearemos un directorio y, por lo tanto, crearemos nuestros archivos de prueba en el directorio.

Sigamos los pasos que se muestran a continuación:

  • Crea un nuevo directorio llamado automation y navegue al directorio en su línea de comando.

  • Crea un archivo llamado test_square.py y agregue el siguiente código a ese archivo.

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

Ejecute la prueba con el siguiente comando:

pytest

El comando anterior generará la siguiente salida:

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

Vea la primera línea del resultado. Muestra el nombre del archivo y los resultados. F representa un error de prueba y el punto (.) Representa un éxito de prueba.

Debajo de eso, podemos ver los detalles de las pruebas fallidas. Mostrará en qué sentencia falló la prueba. En nuestro ejemplo, se compara 7 * 7 para la igualdad con 40, lo cual es incorrecto. Al final, podemos ver el resumen de ejecución de la prueba, 1 falló y 1 pasó.

La función tesequality no se ejecuta porque pytest no la considerará como prueba ya que su nombre no es del formato test*.

Ahora, ejecute el siguiente comando y vea el resultado nuevamente:

pytest -v

-v aumenta la verbosidad.

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

Ahora el resultado es más explicativo sobre la prueba que falló y la prueba que pasó.

Note - el comando pytest ejecutará todos los archivos de formato test_* o *_test en el directorio y subdirectorios actuales.