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

360
Views
¿Cómo obtener una cobertura completa de una aplicación CLI nodeJS con Estambul?

Estoy usando esta configuración: Estambul/Mocha/Chai/supertest (para pruebas de http)/sinon (para pruebas de temporizador) pero tengo algunos problemas con las herramientas de CLI de prueba

Mi pregunta es simple: ¿Cómo puedo probar mi programa CLI y lograr al mismo tiempo una cobertura de código del 100 % con Estambul? No importa qué herramienta esté utilizando, ¡me gustaría entender cómo lo está haciendo, por favor!

Encontré este artículo que fue muy útil al principio pero

  • Fue escrito en 2014.
  • El módulo mock-utf8-stream no parece estándar
  • No explica claramente la arquitectura del código.

salud

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Esto se hará en 2 pasos:

  1. Asegúrese de que su conjunto de pruebas esté configurado para generar correctamente la ejecución de la CLI
  2. Configure nyc (la razón para cambiar de istanbul a nyc se explica a continuación) para revisar los archivos de script detrás de su herramienta CLI

Configuración de sus pruebas para ejecutar subprocesos de generación

Tuve que configurar algunas pruebas CLI hace unos meses en Fulky (el proyecto está en pausa en este momento pero es temporal) y escribí mi conjunto de pruebas como tal:

 const expect = require('chai').expect; const spawnSync = require('child_process').spawnSync; describe('Executing my CLI tool', function () { // If your CLI tool is taking some expected time to start up / tear down, you // might want to set this to avoid slowness warnings. this.slow(600); it('should pass given 2 arguments', () => { const result = spawnSync( './my-CLI-tool', ['argument1', 'argument2'], { encoding: 'utf-8' } ); expect(result.status).to.equal(0); expect(result.stdout).to.include('Something from the output'); }); });

Puede ver un ejemplo aquí , pero tenga en cuenta que este es un archivo de prueba ejecutado con Mocha , que ejecuta Mocha en un proceso generado . Un poco de Inception para su necesidad aquí, por lo que puede ser confuso, pero está probando un complemento de Mocha, por lo tanto, el juego mental agregado. Sin embargo, eso debería aplicarse a su caso de uso si se olvida de esa complejidad.

Configuración de la cobertura

Luego querrá instalar nyc con npm i nyc --save-dev , la herramienta CLI actual para Estambul, porque a diferencia de la CLI anterior ( istanbul en sí), permite la cobertura de aplicaciones que generan subprocesos. Lo bueno es que sigue siendo la misma herramienta, el mismo equipo, etc. detrás de nyc , por lo que el cambio es realmente trivial (por ejemplo, vea esta transición ).

En su package.json , luego agregue a sus scripts :

 "scripts": { "coverage": "nyc mocha" }

Luego obtendrá un informe con npm run coverage (probablemente tendrá que configurar la opción de reporter en .nycrc ) que también pasa por sus scripts CLI.

No configuré esta parte de cobertura con el proyecto mencionado anteriormente, pero acabo de aplicar estos pasos localmente y funciona como se esperaba, así que lo invito a probarlo por su parte.

over 4 years ago · Santiago Trujillo 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!