Mike (@mikerb95)CodeByMike

Ejecución de pruebas

La evidencia de la última corrida completa: cuántas pruebas se ejecutaron, cuánto tardó cada una y en qué archivo vive. Donde Testingdescribe la estrategia, esta página muestra el resultado medido de aplicarla.

Capturada el 26 de agosto de 2026 desde el reporte JUnit de Vitest. Ninguna cifra de esta página se escribe a mano: se regeneran juntas al correr el script, así que no pueden desalinearse del código sin que el diff lo muestre.

Resumen de la corrida

1.200
Pruebas ejecutadas
70 archivos
0
Fallos
suite completa en verde
35.1 s
Duración total
suite completa de Vitest
27.7 ms
Promedio por prueba
media aritmética

Cómo se reproduce

npx vitest run --reporter=junit --outputFile=informes/tests-junit.xml && node scripts/report-tests.mjs

Por nivel de prueba

Unitarias / lógica pura
1.067pruebas en 60 archivos · 10.1 s

Funciones de src/lib sin base de datos ni red.

Integración con libSQL
133pruebas en 10 archivos · 25.0 s

Base de datos real y desechable en un archivo temporal.

Una prueba de integración cuesta 20× más tiempo que una unitaria. Ese número es la razón de la forma de la pirámide: no es una preferencia estética, es lo que hace que la suite completa siga cabiendo en un minuto de CI.

Distribución de tiempos

< 1 ms675
1 - 10 ms368
10 - 100 ms82
0.1 - 1 s70
> 1 s5

Escala logarítmica, porque en lineal todo se apilaría en una sola barra:87% de las pruebas termina en menos de 10 ms. Solo 5 pasan del segundo, y son las que abren base de datos o ejercitan el rate limiting de verdad.

Las 12 más lentas

tests/latency.test.ts1.86 s
tests/security-honeypot.test.ts1.67 s
tests/security-honeypot.test.ts1.60 s
tests/portal-isolation.test.ts1.60 s
tests/security-honeypot.test.ts1.35 s
tests/security-honeypot.test.ts998.8 ms
tests/portal-isolation.test.ts825.6 ms
tests/portal-passwords.test.ts677.3 ms
tests/portal-isolation.test.ts610.2 ms
tests/portal-passwords.test.ts605.7 ms
tests/portal-isolation.test.ts569.1 ms
tests/portal-isolation.test.ts534.0 ms

Los 70 archivos

ArchivoPruebasFallosTiempo
portal-isolation.test.tsintegración26012.36 s
security-honeypot.test.ts705.63 s
portal-live.test.tsintegración1002.93 s
portal-activity.test.tsintegración1602.51 s
cobros-db.test.tsintegración2102.30 s
latency.test.tsintegración902.14 s
portal-passwords.test.ts1401.83 s
contracts.test.tsintegración501.17 s
fingerprint.test.tsintegración120752.5 ms
payments.test.tsintegración230537.8 ms
present-pin.test.ts150313.1 ms
portal-health.test.tsintegración80144.3 ms
fallback.test.ts190143.4 ms
security-blocklist-db.test.tsintegración30140.7 ms
diagnostics.test.ts370136.0 ms
bpmn.test.ts830113.0 ms
monitors.test.ts8099.8 ms
cobros.test.ts22098.1 ms
present-sync.test.ts16098.0 ms
uml-communication.test.ts25097.5 ms
domains.test.ts13091.2 ms
red.test.ts12073.8 ms
indexnow.test.ts8071.3 ms
notify.test.ts10069.3 ms
money.test.ts13058.0 ms
i18n-routing-guards.test.ts141056.3 ms
capacitacion.test.ts35055.9 ms
i18n-routing.test.ts56054.8 ms
portal-invoices.test.ts17051.4 ms
skills.test.ts31051.2 ms
device-info.test.ts10049.8 ms
present-deck-parse.test.ts24049.0 ms
uml-activity.test.ts19046.1 ms
uml-component.test.ts5039.4 ms
uml-deployment.test.ts5038.4 ms
normalization.test.ts15035.2 ms
i18n-dictionary.test.ts4033.7 ms
pnl.test.ts9033.7 ms
security-classify.test.ts49029.8 ms
demo.test.ts12028.1 ms
findings.test.ts19028.0 ms
present-assets.test.ts17027.3 ms
monitor-rollup.test.ts15027.1 ms
phone.test.ts14025.7 ms
mis-pagos.test.ts7024.1 ms
slo.test.ts11023.5 ms
present-state.test.ts15022.6 ms
crypto.test.ts8022.4 ms
vault.test.ts10021.8 ms
security-anomaly.test.ts13021.7 ms
security-autoblock.test.ts14021.5 ms
clients-validate.test.ts14019.8 ms
security-redact.test.ts9019.3 ms
sena-ep.test.ts7019.3 ms
portal-paths.test.ts11019.0 ms
vyv.test.ts8018.9 ms
portal-demo.test.ts11018.7 ms
i18n-bilingual.test.ts10018.5 ms
crons.test.ts29018.3 ms
pipeline-live.test.ts11017.5 ms
i18n-localize.test.ts11017.1 ms
gobernanza.test.ts9016.5 ms
vitals.test.ts9013.9 ms
security-csp-report.test.ts6013.7 ms
mutation.test.ts7013.4 ms
chaos.test.ts12012.4 ms
db-target.test.ts5012.1 ms
security-blocklist.test.ts7010.6 ms
security-rollup.test.ts609.20 ms
security-ratelimit.test.ts808.70 ms

Las suites marcadas integración abren una base libSQL real en un archivo temporal de tmpdir(), nunca en memoria: una transacción abre otra conexión y una base en memoria no comparte tablas entre conexiones. El resto es lógica pura. La cobertura se mide aparte, con npm run test:coverage.