modular coverage tools for the modern web
esnext-coverage est un ensemble d'outils de mesure de couverture de code source JavaScript (ECMAScript 6+)
Un projet personnel devenu une passion
1.
2.
Fournir un outil open-source, gratuit et facile à utiliser à la communauté web
Mieux comprendre le transpileur Babel
Mieux comprendre JavaScript
1.
2.
3.
(du point de vue utilisateur)
$ mocha -r esnext-coverage test/*.js
{
"only": "src/*.js",
"reporters": [
{"formatter": "html", "outFile": "coverage.html"},
{"formatter": "text", "console": true}
]
}
instrumentation
const x = 42;
incr(0);
const x = incr(1, 42);
(du point de vue d'outil)
exécution
récuperation
{"my-file.js": {
"path": "my-file.js",
"locations": [
{"id":0,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":13}},"tags":["variable","statement"],"count":1},
{"id":1,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":12}},"tags":["expression"],"count":1}
]
}}
formattage
============================================================
Passed test coverage on Node v6.2.2
Overall project coverage
------------------------------------------------------------
Statements: 100% (covered 1/1, threshold 100%)
Branches: 100% (covered 0/0, threshold 100%)
Functions: 100% (covered 0/0, threshold 100%)
Lines: 100% (covered 1/1, threshold 100%)
Passed test coverage on Node v6.2.2
============================================================
function incr(id, value) {
locations[id].count += 1;
return value;
}
const x = incr(0, 42);
incr(0);
const x = ;
const x = 42;
( VariableDeclaration )
( NumericLiteral )
Statement
Expression
incr(1, 42)
Stabilisation de l'API, tests unitaires
1.
Plus de fonctionnalités, meilleur design et ergonomie du reporteur HTML
2.
Plugins pour les IDE (Atom, Vim, ...)
3.
TypeScript ? CoffeeScript ?..
5.
Affichage du flux d'execution du programme testé (datavis)
4.
Quelques liens utiles :
Babel Handbook
Babel types
AST Explorer
esnext-coverage