Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

145
Views
Afirmar el número de pruebas ejecutadas por mocha.js

¿Hay alguna manera de afirmar la cantidad de pruebas que ha realizado mocha?
Por ejemplo, algo como:

 afterAllTests(() => { expect(mocha.numTestsRun).to.be.greaterThan(400); });

Recientemente actualicé de mocha 7.1.2 a 9.1.3 y el argumento abreviado -R dejó de funcionar. Mi conjunto de pruebas pasó de ejecutar ~ 400 pruebas a ejecutar solo ~ 10 pruebas de nivel superior. Cambiar de nuevo a --recursive solucionó el problema, pero me gustaría asegurarme de que algo así no vuelva a suceder.

Mi package.json se parece a esto:

 { "scripts": { "integrationTest": "mocha --recursive spec test/integration", } }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

En lugar de contar la cantidad de pruebas que se han realizado hasta ahora, contaría la cantidad de pruebas que se han declarado con Mocha. Esto garantiza que la verificación del número total de pruebas siga siendo válida independientemente del orden de ejecución.

Para calcular la cantidad total de pruebas, debemos contar la cantidad de pruebas declaradas en el conjunto de nivel superior y en todos sus subconjuntos de forma recursiva (no hay atajo AFAIK).

Comenzamos declarando una nueva prueba (se puede colocar en cualquier lugar) con el único propósito de contar el número total de pruebas.

En esta prueba , podemos obtener la suite contenedora con this.runnable().parent . La suite, a su vez, también tiene una propiedad parent que se puede usar para obtener la siguiente suite superior, hasta la suite de nivel superior (que Mocha define implícitamente). La suite de nivel superior tiene una root de propiedad establecida en true .

Ahora, la suite de nivel superior, como cualquier otra suite, tiene tests de propiedades y suites que se pueden usar para ramificarse a través de todas las suites descendientes y contar el número total de pruebas declaradas.

 it('total number of tests should be > 400', function() { // Use `function()`, don't use `() =>`... let suite0 = this.runnable().parent; // ...because we need to access `this`. while (!suite0.root) suite0 = suite0.parent; // suite0 is now the top-level suite // Recursiveliy count the number of tests in each suite const countTests = (cnt, suite) => suite.suites.reduce(countTests, cnt + suite.tests.length); const totalTests = countTests(0, suite0); expect(totalTests).to.be.greaterThan(400); });

Esto contará todas las pruebas, incluidas las marcadas como skip (pero supongo que eso es lo que quieres).

Tenga en cuenta también que, obviamente, la prueba de conteo de pruebas en sí misma solo funciona siempre que no olvide incluirla cuando ejecute Mocha. Mover la lógica de prueba a un nivel superior before o after del gancho no cambiará mucho, porque esos ganchos tienen la misma visibilidad que las pruebas declaradas en el mismo ámbito. Podría poner esa prueba en un archivo que está justo dentro de la carpeta de spec , por lo que se ejecutará incluso sin el indicador --recursive . Como último recurso, puede establecer la cantidad de pruebas en una variable de entorno y verificar ese valor fuera de Mocha.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!