@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.

  • 396