CommunityProgramación y desarrollogithub.com

bobmatnyc/pytest

pytest: el marco de pruebas más potente de Python con fixtures, parametrización, plugins e integración con frameworks como FastAPI, Django y Flask.

¿Qué es pytest?

Este skill proporciona una guía completa sobre pytest, el marco de pruebas más avanzado y ampliamente adoptado en el ecosistema Python. Está diseñado para desarrolladores que trabajan con aplicaciones modernas basadas en FastAPI, Django o Flask, ofreciendo soporte para características clave como fixtures reutilizables, parametrización de pruebas, y una amplia gama de plugins. El skill cubre desde la instalación y configuración básica hasta técnicas avanzadas como marcadores personalizados, pruebas asíncronas con pytest-asyncio, y generación de informes de cobertura con pytest-cov. Además, incluye ejemplos prácticos de integración con frameworks web populares y explica cómo adaptar pytest a diferentes entornos de desarrollo. Es útil tanto para principiantes que desean aprender las bases como para equipos que buscan estandarizar sus flujos de trabajo de pruebas en proyectos Python.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/bobmatnyc/claude-mpm-skills/tree/main/skills/pytest

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace pytest?

pytest: el marco de pruebas más potente de Python con fixtures, parametrización, plugins e integración con frameworks como FastAPI, Django y Flask.

Instalación

pip install pytest

Para instalar plugins adicionales:

pip install pytest-cov pytest-asyncio pytest-django

Uso básico

Crea un archivo test_sample.py:

def func(x):
    return x + 1

def test_answer():
    assert func(3) == 5

Ejecuta las pruebas:

pytest

Características principales

Fixtures

Los fixtures permiten configurar y limpiar recursos de pruebas de manera modular:

import pytest

@pytest.fixture
def input_value():
    return 5

def test_division(input_value):
    assert input_value / 2 == 2.5

Parametrización

Prueba múltiples casos con un solo test:

@pytest.mark.parametrize("input,expected", [
    (1, 2),
    (2, 4),
    (3, 6),
])
def test_multiplication(input, expected):
    assert input * 2 == expected

Marcadores

Organiza y filtra pruebas con marcadores personalizados:

@pytest.mark.slow
def test_large_computation():
    ...

Ejecuta solo pruebas lentas:

pytest -m slow

Integración con frameworks

FastAPI

from fastapi.testclient import TestClient
from main import app

def test_read_main():
    client = TestClient(app)
    response = client.get("/")
    assert response.status_code == 200
    assert response.json() == {"msg": "Hello World"}

Django

Configura pytest-django en pytest.ini:

[pytest]
DJANGO_SETTINGS_MODULE = myproject.settings

Flask

from flask import Flask
from flask.testing import FlaskClient

def test_hello(client):
    response = client.get("/hello")
    assert response.status_code == 200

Plugins recomendados

  • pytest-cov: Informes de cobertura de código
  • pytest-asyncio: Soporte para pruebas asíncronas
  • pytest-django: Integración con Django
  • pytest-flask: Extensiones para Flask
  • pytest-xdist: Ejecución paralela de pruebas

Ejecución avanzada

# Ejecutar pruebas en paralelo
pytest -n 4

# Generar informe de cobertura
pytest --cov=myproject

# Ejecutar pruebas asíncronas
pytest --asyncio-mode=auto

Recursos adicionales

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

Skills relacionados