2016-12-15 4 views
2

Я пытаюсь добавить покрытие кода в существующую библиотеку, которая пересылается из ES2015. Кажется, я все делаю правильно. Мой Makefile читаетЧто я могу сказать о Babel с istanbul?

test: .FORCE 
    export NODE_ENV=test 
    babel *.js --out-dir lib 
    nyc mocha 

И мой babelrc читает

{ 
    "presets": ["es2015"], 
    "sourceMaps": true, 
    "env": { 
    "test": { "plugins": ["istanbul"] } 
    } 
} 

в то время как мой package.json включает

"nyc": { 
    "include": [ 
    "**/*.js" 
    ], 
    "require": [ 
    "babel-register" 
    ], 
    "sourceMap": false, 
    "instrument": false 
} 

И все же, после того, как мои тесты, на выходе просто читает:

----------|----------|----------|----------|----------|----------------| 
File  | % Stmts | % Branch | % Funcs | % Lines |Uncovered Lines | 
----------|----------|----------|----------|----------|----------------| 
All files | Unknown | Unknown | Unknown | Unknown |    | 
----------|----------|----------|----------|----------|----------------| 

Я пробовал, что чувствует, что каждая комбинация babel-node, babel-istanbul и nyc, с различными директивами include, и я никогда не получал ее так, чтобы сообщать файл с 0% охватом, даже при использовании --include-all-sources. Что дает? Что мне не хватает?

ответ

1

Вам необходимо измерить код, который передается. Используйте этот плагин babel: https://github.com/istanbuljs/babel-plugin-istanbul

Пакет, в котором вы используете babel-istanbul, представляет собой вставной пакет, предназначенный для замены babel.