次のように、 MochaとispartaをBabel 6で直接使用しています。
npm test
指図
BABEL_ENV=test babel-node node_modules/isparta/bin/isparta cover _mocha
.babelrc
{
"plugins": [
"add-module-exports",
"transform-decorators-legacy",
"transform-runtime"
],
"presets": [
"es2015",
"react",
"stage-0"
],
"env": {
"test": {
"plugins": [
"rewire"
]
}
}
}
test/mocha.opts
--compilers js:babel-core/register
--require test/init.js
src/**/*_test.js*
test.init.js
'use strict';
require('mock-require')('clappr');
require('testdom')('<html><body></body></html>', {
React: 'react',
localStorage: 'localStorage'
});
.istanbul.yml
instrumentation:
root: src
excludes: ['*_test.js']
から依存関係を選択package.json
"babel-cli": "^6.7.5",
"babel-core": "^6.7.2",
"babel-eslint": "^5.0.0",
"babel-loader": "^6.2.4",
"babel-plugin-add-module-exports": "^0.1.2",
"babel-plugin-rewire": "^1.0.0-rc-2",
"babel-plugin-runtime": "^1.0.7",
"babel-plugin-syntax-jsx": "^6.5.0",
"babel-plugin-transform-decorators-legacy": "^1.3.4",
"babel-plugin-transform-runtime": "^6.6.0",
"babel-preset-es2015": "^6.6.0",
"babel-preset-react": "^6.5.0",
"babel-preset-stage-0": "^6.5.0",
"babel-register": "^6.7.2",
"babel-runtime": "^5.8.34",
"babel-template": "^6.7.0",
"babel-types": "^6.7.2",
"isparta": "^4.0.0",
"mocha": "^2.4.5",
.JSX ファイルに関する注意
すべての .JSX ファイルの名前を .JS に変更しました。その理由は次のとおりです。
- ホストされているカバレッジ レポートにcodecovを使用しています。これ
coverage/lcov-report/index.html
により、正しいカバレッジが示されている一方で、JSON カバレッジ ファイルの何かが .JSX ファイルで欠落しているという事実が明らかになりました。私はそれを理解することができませんでした。私が知る限り、これは isparta または istanbul のバグです。私も試しistanbul@1.0.0-alpha.2
てみましたが、同じ問題があることがわかりました。
- React は、変換ユーティリティとエディターの利点のために、.JSX という名前のファイルを推奨するために使用されていました。これはもはや推奨事項ではありません。私が知る限り、それはもう問題ではありません。
.JS に切り替えて以来、Atom や IntelliJ などのツールで問題は発生していません。
ファイルの名前を変更したくない場合は、上記の例に次を追加できます。
- スクリプトで、 の後
isparta cover
に を追加し--include \"src/**/*_test.jsx\"
ます。
- に
.istanbul.yml
、追加
extensions:
- .js
- .jsx