Saltar a contenido

Primeros Pasos

Instalación

pip install oxytest

# Para soporte de cobertura
pip install oxytest[cov]

Uso

Línea de Comandos

Ejecutar tests en el directorio actual:

oxytest

Ejecutar tests en un directorio específico:

oxytest tests/

Ejecutar con salida detallada:

oxytest -v

Ejecutar con paralelismo (4 workers):

oxytest -n 4

Detener en el primer fallo:

oxytest -x

Filtrar por palabra clave (soporta and, or, not, paréntesis):

oxytest -k "math or string"
oxytest -k "not slow and (math or api)"

Medir cobertura de código:

oxytest --cov=src/ --cov-report=html

Depurar fallos:

oxytest --pdb          # depurador post-mortem
oxytest --trace        # depurador antes de cada test

Configuración via pyproject.toml

Crea un archivo pyproject.toml en la raíz de tu proyecto:

[tool.oxytest]
addopts = "-v --tb=short"
testpaths = ["tests/"]
ignore = ["tests/legacy/"]
markers = ["slow: marks slow tests"]
cov_source = "src/"
cov_report = "html"

Integración con VSCode

Oxytest incluye un plugin integrado para VSCode — no necesita configuración adicional. Solo activa "python.testing.pytestEnabled": true en los ajustes de VSCode.

Como Reemplazo de pytest

# Usar oxytest como reemplazo directo de pytest
import oxytest as pytest

# Toda la API estándar de pytest está disponible
pytest.main(["-v", "tests/"])

# Usar approx
assert 0.1 + 0.2 == pytest.approx(0.3)

# Usar raises
with pytest.raises(ValueError):
    int("no es un número")

# Usar fixtures
@pytest.fixture
def my_data():
    return {"key": "value"}

# Usar marcadores
@pytest.mark.parametrize("x,expected", [(1, 2), (3, 4)])
def test_double(x, expected):
    assert x * 2 == expected

Integración en CI

Reemplaza pytest por oxytest en tu configuración de CI:

GitHub Actions:

- name: Run tests
  run: oxytest -v -n auto

GitLab CI:

test:
  script:
    - oxytest -v -n auto

Makefile:

test:
    oxytest -v -n auto