Aquí teneis un listado de los comandos más importantes de pytest, una de las herramientas más utilizadas para pruebas en Python.
pytest
1️⃣ Ejecutar todas las pruebas en el proyecto
pytest
Ejecuta automáticamente todas las pruebas encontradas en archivos con prefijo test_
o sufijo _test.py
.
2️⃣ Ejecutar pruebas de un archivo específico
pytest test_mi_modulo.py
Ejecuta solo las pruebas dentro de test_mi_modulo.py
.
3️⃣ Ejecutar un solo test dentro de un archivo
pytest test_mi_modulo.py::test_funcion_especifica
Ejecuta solo la función de prueba test_funcion_especifica
dentro del archivo test_mi_modulo.py
.
4️⃣ Mostrar más detalles en la salida (modo verboso)
pytest -v
Muestra más información sobre cada prueba ejecutada.
5️⃣ Detener la ejecución en el primer fallo
pytest -x
Detiene la ejecución en cuanto una prueba falla.
6️⃣ Reintentar pruebas fallidas
pytest --maxfail=3
Detiene la ejecución después de 3 fallos.
7️⃣ Ejecutar solo pruebas que fallaron en la última ejecución
pytest --lf
(--last-failed
) Reejecuta solo las pruebas fallidas en la última ejecución.
8️⃣ Volver a ejecutar automáticamente las pruebas fallidas varias veces
pytest --reruns 3
Ejecuta nuevamente las pruebas fallidas hasta 3 veces antes de reportarlas como fallidas.
9️⃣ Ejecutar pruebas con cobertura de código
pytest --cov=mi_modulo
Requiere pytest-cov
. Muestra qué partes del código fueron ejecutadas durante las pruebas.
🔟 Ejecutar pruebas paralelamente
pytest -n auto
Requiere pytest-xdist
. Ejecuta pruebas en paralelo usando múltiples núcleos del procesador.
🔹 Ejecutar solo pruebas con un nombre específico
pytest -k "nombre_test"
Ejecuta solo las pruebas que contengan "nombre_test"
en su nombre.
🔹 Ejecutar pruebas de una clase específica
pytest test_mi_modulo.py::TestClase
Ejecuta todas las pruebas dentro de TestClase
.
🔹 Ejecutar solo pruebas con un marcador específico
pytest -m "marca_especifica"
Ejecuta solo las pruebas que tengan el decorador @pytest.mark.marca_especifica
.
🔹 Depurar cuando una prueba falla
pytest --pdb
Abre el depurador interactivo (PDB) en el punto exacto donde falló la prueba.
🔹 Mostrar cada print()
en tiempo real
pytest -s
Evita que pytest
capture la salida de print()
y la muestra en la terminal en tiempo real.
🔹 Generar un informe en JUnit (para integración con CI/CD)
pytest --junitxml=report.xml
Crea un archivo report.xml
con los resultados de las pruebas, útil en integración continua (CI/CD).