En el marco de prueba de javascript de Mocha/Chai, ¿es posible eliminar la velocidad de milisegundos informada por Mocha?
Me gustaría una forma más fácil de comparar los resultados de diferentes pruebas, y actualmente cada línea de prueba muestra una diferencia ya que la velocidad (ms) varía de una ejecución a otra.
test1.js description here ✔ should do the things (211ms)Mocha usa spec como su reportero predeterminado. El reportero de spec hereda del reportero Base . Utiliza el método .epilogue() de Base para el evento EVENT_RUN_END .
El método imprimirá los milisegundos, el código fuente:
Base.consoleLog(fmt, stats.passes || 0, milliseconds(stats.duration));Puede crear un reportero personalizado para mocha.
./reporters/tidy.js :
const Mocha = require('mocha'); const { EVENT_RUN_END, EVENT_TEST_FAIL, EVENT_TEST_PASS } = Mocha.Runner.constants; class Tidy { constructor(runner) { const stats = runner.stats; runner .on(EVENT_TEST_PASS, (test) => { console.log(`pass: ${test.fullTitle()}`); }) .on(EVENT_TEST_FAIL, (test, err) => { console.log(`fail: ${test.fullTitle()} - error: ${err.message}`); }) .once(EVENT_RUN_END, () => { console.log(`end: ${stats.passes}/${stats.passes + stats.failures} ok`); }); } } module.exports = Tidy;Use fullTitle() → {cadena} para
Devuelve el título completo generado al concatenar recursivamente el título completo del padre.
Le dará pass: <test suite title> <test case title> cadena.
Prueba de ejemplo:
const { expect } = require('chai'); describe('description here', () => { it('should pass', () => { expect(1 + 1).to.be.equal(2); }); it('should fail', () => { expect(1 + 1).to.be.equal(3); }); });Producción:
⚡ npx mocha --reporter ./reporters/tidy.js /Users/dulin/workspace/github.com/mrdulin/expressjs-research/reporters/index.test.js pass: description here should pass fail: description here should fail - error: expected 2 to equal 3 end: 1/2 okSi bien la respuesta aceptada es más sofisticada, encontré una forma mucho más económica de eliminar las velocidades al aumentar la opción --slow a un número muy grande, ya que la velocidad solo aparece para las pruebas lentas.