Organización y Ejecución de Pruebas con pytest
Desliza para mostrar el menú
Cuando se busca escribir código de pruebas limpio, expresivo y fácilmente mantenible en Python, pytest es una opción popular. A diferencia del framework incorporado unittest, que sigue una estructura rígida basada en clases y requiere métodos de aserción específicos como self.assertEqual, pytest permite utilizar sentencias estándar de assert de Python dentro de funciones simples. Esto reduce drásticamente el código repetitivo y hace que las pruebas sean más concisas, ya que no es necesario envolver la lógica en jerarquías complejas de clases ni memorizar decenas de nombres de aserciones específicos del framework solo para verificar un resultado sencillo.
Una de las características más potentes de pytest es su sistema de descubrimiento de pruebas. Simplemente ejecutando pytest en el directorio de tu proyecto, encontrará automáticamente todos los archivos que coincidan con el patrón test_*.py o *_test.py y ejecutará todas las funciones dentro de esos archivos que comiencen con test_. Esto significa que no tienes que especificar manualmente qué pruebas ejecutar: pytest lo gestiona por ti.
Otra ventaja clave es el uso de fixtures. Los fixtures se encargan de preparar y limpiar los recursos que tus pruebas necesitan, como archivos temporales o conexiones a bases de datos, de una manera fácil de reutilizar. Simplemente decoras una función con @pytest.fixture y luego la solicitas como entrada en tus funciones de prueba. Esto mantiene tu código modular y evita que repitas la misma lógica de configuración.
Para comenzar con pytest, primero necesitas instalarlo. Utiliza el siguiente comando en tu terminal:
pip install pytest
Esto descargará e instalará la versión más reciente de pytest para que puedas empezar a escribir y ejecutar tus pruebas de inmediato.
A continuación, se muestra una demostración práctica de cómo utilizarlo para escribir pruebas basadas en funciones y definir fixtures reutilizables.
import pytest
# A simple function to test
def add(a, b):
return a + b
# Define a fixture that provides test data
@pytest.fixture
def sample_numbers():
return (3, 5)
# Test function using the fixture
def test_add_with_fixture(sample_numbers):
a, b = sample_numbers
result = add(a, b)
assert result == 8
# Another simple test function
def test_add_negative_numbers():
assert add(-2, -4) == -6
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla