Sto testando del codice a livello di codice utilizzando Jasmine dal nodo. Per fare questo, ho installato il seguente:Running Blanket.js
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();
Quando questi test eseguiti, vorrei avere i dettagli di copertura di codice. Durante il tentativo, sono incappato in blanket.js. La mia domanda è, come faccio a generare in modo programmatico i risultati della copertura del codice? Usando il codice sopra, ottengo un errore. L'errore dice semplicemente:
Error: Bad file instrument indicator. Must be a string, regex, function, or array.
Perché? Che cosa sto facendo di sbagliato?
Aggiornamento
Nel mio file package.son, ho la seguente sezione:
"config": {
"blanket": {
"data-cover-flags": {
"engineOnly":true
}
}
}
Ho aggiornato la mia funzione runTests
a guardare come questo:
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;
Il codice sopra riportato si trova in un file denominato "main.js" che eseguo chiamando node main.js
dalla finestra della console. "library.js" è allo stesso livello e i test si trovano in una directory figlia in "./unit-tests/tests.js". Quando viene eseguito quanto sopra, il codice customerReporter non viene mai chiamato. Non capisco perché.
[Istruzioni per l'uso del test di corridore Jasmine] (https://github.com/alex-seville/blanket/blob/v1.1.7/docs/intermediate_browser.md). – approxiblue
Ancora senza fortuna coperta da Node. –
Che aspetto ha '' 'library.js'''? –