Ir al contenido principal

Pytest: un framework para crear pruebas de tu código

Pytest es un framework que nos sirve para crear pruebas a nuestro código Python. Facilita la escritura de pruebas pequeñas y legibles, y puede escalar para soportar pruebas funcionales complejas para aplicaciones y bibliotecas.

Para quien sepa la filosofía TDD entederá.

La instalación no nos lleverá mucho tiempo. Abrimos una terminal y escribimos:

$ pip install -U pytest

Si ha funcionado, verificamos:

$ pytest --version

¿Qué podemos hacer con Pytest? Básica y llanamente nos permite escribir y ejecutar pruebas automatizadas (unitarias, de integración, funcionales y en-to-end) en Python. Esto para tener una mejor calidad de código y evitar futuros errores.

¿Cómo funciona? Veamos un ejemplo.

Escribamos una función para sumar dos números. Escribimos un test que falle.

pruebas.py

import pytest

# Función que sume dos números
def add(x, y):
    return x + y


# Prueba que falle, 3 + 4 no da 5
def test_fail_add():
    assert add(3,4) == 5

Ejecutemos la prueba:

$ python prueba.py

Salida:

collected 1 item

prueba.py F                                                                                                       [100%]

====================================================== FAILURES =======================================================
______________________________________________________ test_add _______________________________________________________

    def test_fail_add():
>       assert add(3,4) == 5
E       assert 7 == 5
E        +  where 7 = add(3, 4)

prueba.py:12: AssertionError
=============================================== short test summary info ===============================================
FAILED curso.py::test_fail_add - assert 7 == 5
================================================== 1 failed in 0.84s ==================================================

Comentemos el test que falla y escribamos un test que pase.

import pytest

# Función que sume dos números
def add(x, y):
    return x + y

# Prueba que falle, 3 + 4 no da 5
#def test_fail_add():
    #assert add(3,4) == 5

# Prueba exitosa
def test_success_add():
    assert add(3,4) == 7

Ejecutemos de nuevo:

$ python prueba.py

Salida:

========================================================================= test session starts =========================================================================
platform win32 -- Python 3.13.3, pytest-8.4.1, pluggy-1.6.0
rootdir: C:\Users\HP\Documents\pruebasPython
collected 1 item

prueba.py .                                                                                                                                                       [100%]

========================================================================== 1 passed in 0.08s ==========================================================================

Ya no hay excusa para crear pruebas a tu código Python.

Continuaremos con esta serie sobre Python.

Enlaces:

https://docs.pytest.org/en/stable/


Comentarios

Entradas populares de este blog

Odin language: el lenguaje de programación orientado a datos para un desarrollo de software sensato

En esta serie sobre lenguajes de programación hablamos de Odin , un lenguaje orientado a datos. Un nuevo lenguaje de programación que nos podrá recordar a lenguajes como C++, Python, Golang o hasta Rust. Instalación (Windows): 1 2 3 4 $ git clone https://github.com/odin-lang/Odin $ cd Odin $ git pull $ build.bat release Debemos asegurarnos de crear la variable de entorno: Nombre: ODIN_HOME Valor: C:\Users\HP\Documents\pruebasOdin\Odin Ejemplo 1. Como primer programa tendremos al clásico "Hola, mundo". holamundo.odin package holamundo import " core:fmt " main : : proc ( ) { fmt . println ( " ¡Hola, mundo desde Odin! " ) } Construimos: $ odin build holamundo . odin - file Ejecutamos: $ holamundo .exe Recordar que si usamos Visual Studio Code podemos instalar el plugin de Odin Language: https://marketplace.visualstudio.com/items?itemName=DanielGavin.ols Ejemplo 2. Programa que muestre las variables que pod...

Programación Windows Batch (CMD) parte 3

Crear ciclos para efectuar operaciones tediosas nos ahorrará tiempo para realizar otras tareas. En está ocasión veremos ciclos con FOR . ¿Cuál es la síntaxis de bucle FOR en Windows Batch? Si está dentro de un archivo *.bat : FOR %%variable IN (seq) DO operaciones Si lo ejecutamos en una terminal: FOR %variable IN (seq) DO operaciones Ejemplo 1 . Recorrer una secuencia de números del 0 al 5: recorrer.bat @ echo off FOR %%i in ( 0 1 2 3 4 5 ) DO echo Hola no. %%i pause Nos imprimirá en pantalla: Hola no. 0 Hola no. 1 Hola no. 2 Hola no. 3 Hola no. 4 Hola no. 5 ¿Puedo usar contadores? Si, se pueden usar. Ejemplo 2 . Uso de contadores: contador.bat @ echo off set numeros = 1 2 3 4 5 6 7 8 9 10 set cont = 0 for %%a in ( %numeros% ) do ( echo Hola no. %%a :: Contador set /a cont+ = 1 ) echo Total: %cont% Este código nos imprimirá, además de los mensajes Hola no. 0 ..., el total de valores conta...

z/OS, ¿Qué es? y ¿Cuáles son sus herramientas?

  En este post veremos las herramientas de z/OS de IBM. z/OS es un sistema operativo de mainframe desarrollado por IBM.  Es parte de la serie IBM z Systems (anteriormente conocida como System z), que se utiliza en los sistemas mainframe de IBM. z/OS es uno de los sistemas operativos más utilizados en el mundo empresarial para ejecutar aplicaciones críticas y procesar grandes volúmenes de datos. Características clave de z/OS: Escalabilidad : z/OS es conocido por su capacidad para manejar grandes cargas de trabajo y escalabilidad vertical, lo que permite agregar recursos de hardware para satisfacer las demandas de procesamiento. Confiabilidad y disponibilidad : z/OS está diseñado para ofrecer alta disponibilidad y confiabilidad. Incorpora características como redundancia y recuperación ante fallas para garantizar la continuidad de las operaciones. Seguridad : Proporciona una amplia gama de funciones de seguridad, como autenticación, autorización y auditoría, para proteger los...