javascript jasmine blanket.js

javascript - Ejecutando manta.js



jasmine blanket.js (3)

Estoy probando un código mediante programación con Jasmine de Node. Para ello, he configurado lo siguiente:

function runTests() { var Jasmine = require(''jasmine''); var jasmine = new Jasmine(); jasmine.loadConfig({ spec_dir: ''unit-tests'', spec_files: [ ''tests-*.js'' ] }); var blanket = require(''blanket'')(); var TerminalReporter = require(''jasmine-terminal-reporter''); var reporter = new TerminalReporter({}); jasmine.addReporter(reporter); jasmine.execute(); } runTests();

Cuando se ejecuten esas pruebas, me gustaría obtener los detalles de la cobertura del código. Mientras intentaba esto, tropecé con blanket.js . Mi pregunta es, ¿cómo puedo generar los resultados de cobertura de código mediante programación? Usando el código de arriba, recibo un error. El error simplemente dice:

Error: Bad file instrument indicator. Must be a string, regex, function, or array.

¿Por qué? ¿Qué estoy haciendo mal?

Actualizar

En mi archivo package.son, tengo la siguiente sección:

"config": { "blanket": { "data-cover-flags": { "engineOnly":true } } }

He actualizado mi función runTests para tener este aspecto:

function runTests() { var Jasmine = require(''jasmine''); var jasmine = new Jasmine(); jasmine.loadConfig({ spec_dir: ''unit-tests'', spec_files: [ ''tests-*.js'' ] }); // Setup the coverage reporter var blanket = require("blanket")(); var blanketReporter = function(coverageData) { console.log(coverageData); }; blanket.customReporter = blanketReporter; blanket.instrument({ inputFile: ''library.js'' }, function(result) { }); var TerminalReporter = require(''jasmine-terminal-reporter''); var reporter = new TerminalReporter({}); jasmine.addReporter(reporter); jasmine.execute(); }

library.js

''use strict''; class Processor { execute(vals) { let result = 0; vals.forEach(function(v) { result += v; }); return result; } } module.exports = Processor;

El código anterior está en un archivo llamado "main.js" que ejecuto llamando al node main.js desde la ventana de la consola. "library.js" está al mismo nivel y las pruebas están en un directorio secundario en "./unit-tests/tests.js". Cuando se ejecuta lo anterior, el código de CustomerReporter nunca se llama. No entiendo porque




https://github.com/alex-seville/blanket/issues/248

Si no especifica lo siguiente en su package.json, manta arroja un "Indicador de instrumento de archivo defectuoso. Debe ser una cadena, expresión regular, función o matriz". error. Tan pronto como lo requiera (''manta''); desde cualquier lugar dentro del nodo.

"scripts": { "blanket": { "data-cover-flags": { "engineOnly":true } } }