
@olegskl
modular coverage tools for the modern web

esnext-coverage
Qu'est-ce que c'est ?
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.
Pourquoi le faire ?
Fournir un outil open-source, gratuit et facile à utiliser à la communauté web
Mieux comprendre le transpileur Babel
Mieux comprendre JavaScript
1.
2.
3.
Comment ca marche ?
(du point de vue utilisateur)
$ mocha -r esnext-coverage test/*.js
{
"only": "src/*.js",
"reporters": [
{"formatter": "html", "outFile": "coverage.html"},
{"formatter": "text", "console": true}
]
}
Comment ca marche ?
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
============================================================
Compteur
function incr(id, value) {
locations[id].count += 1;
return value;
}
const x = incr(0, 42);
Instrumentation
incr(0);
const x = ;
const x = 42;
( VariableDeclaration )
( NumericLiteral )
Statement
Expression
incr(1, 42)
P'tit demo




Roadmap du projet
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.
Ils l'utilisent déjà :


Questions ?
Quelques liens utiles :
Babel Handbook
Babel types
AST Explorer
esnext-coverage
Merci !

@olegskl

esnext-coverage
By Oleg Sklyanchuk
esnext-coverage
Code quality tools for the modern web.
- 443