Python ofrece una gran variedad de herramientas, y una de las más útiles para pruebas automatizadas es PyTest. PyTest mejora considerablemente la experiencia del desarrollador al permitir escribir y ejecutar pruebas de manera más eficiente. En esta guía veremos cómo instalar PyTest, crear pruebas parametrizadas y ejecutar un ejemplo básico.
¿Cómo instalar y configurar PyTest?
Abre la terminal y ejecuta el siguiente comando para instalar PyTest:
pip install pytest
Recuerda agregarlo a tu archivo requirements.txt con:
pip freeze | grep pytest > requirements.txt
¿Cómo crear una prueba con PyTest?
En la carpeta de pruebas, crea un archivo llamado test_pytest.py.
Importa PyTest en tu archivo:
import pytest
Crea una función de prueba simple como esta:
deftest_suma(): a =4 b =4assert a + b ==8
Ejecuta la prueba con el siguiente comando:
pytest test_pytest.py
PyTest no requiere la creación de clases para agrupar pruebas, lo cual simplifica el código. En este caso, las pruebas se agrupan por archivo.
¿Cómo parametrizar una prueba en PyTest?
Utiliza decoradores de PyTest para parametrizar la prueba:
En este ejemplo, la función de prueba recibe varios casos con valores diferentes de amount y expected.
Ejecuta las pruebas:
pytest -v
¿Qué ventajas ofrece PyTest al ejecutar pruebas?
PyTest ofrece mensajes de error detallados y fáciles de leer, resaltados con colores.
Los errores incluyen los valores específicos que causaron la falla.
Con la opción -v, PyTest detalla qué pruebas se ejecutaron y sus resultados.
¿Qué ocurre si una prueba falla?
Si una prueba falla, PyTest te indicará exactamente qué valores no coincidieron. Por ejemplo, si uno de los valores esperados es incorrecto:
deftest_balance():assert calcular_balance(100)==5400# Este valor está incorrecto
Al ejecutar nuevamente la prueba, PyTest te mostrará la diferencia entre el valor esperado y el real.
Reto
Refactoriza todas las pruebas de tu proyecto para que utilicen PyTest, aplicando lo que hemos visto sobre parametrización y el uso de asserts más sencillos.