2
this guideに続いて、テスト設定にistanbul-instrumenterを追加して、残りのファイルを表示する「アンバンドル」カバレッジレポートを取得しました。ただし、同梱のテストファイルはまだbuild/
に、示されている。ここでは組み込みファイルをwebpackのカバレッジから除外する方法
----------------------------|----------|----------|----------|----------|----------------|
File | % Stmts | % Branch | % Funcs | % Lines |Uncovered Lines |
----------------------------|----------|----------|----------|----------|----------------|
All files | 70.78 | 36.36 | 69.23 | 60.95 | |
build | 67.39 | 31.03 | 66.67 | 53.93 | |
tests.js | 67.39 | 31.03 | 66.67 | 53.93 |... 208,209,211 |
src/routes/Home | 100 | 75 | 100 | 100 | |
index.js | 100 | 75 | 100 | 100 | 11 |
src/routes/Home/components | 100 | 75 | 100 | 100 | |
HomeView.js | 100 | 75 | 100 | 100 | 18 |
----------------------------|----------|----------|----------|----------|----------------|
✨ Done in 14.19s.
は、これまでの私のテストの設定です。私はイスタンブール・インスツルメンタ・ローダー句でbuild
を除くことは、それを行うだろうと思ったが、していないようです:私は、エントリポイントbuild/tests.js
は、カバレッジの計算に使用されていないことを確認するにはどうすればよい
var nodeExternals = require('webpack-node-externals');
var path = require('path');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
var project = require('../project.config');
const inProject = path.resolve.bind(path, project.basePath);
const inProjectSrc = (file) => inProject(project.srcDir, file);
const __DEV__ = project.env === 'development';
const extractStyles = new ExtractTextPlugin({
filename: 'styles/[name].[contenthash].css',
allChunks: true,
disable: __DEV__
});
module.exports = {
entry: {
main: ['./tests/test-bundler.js']
},
target: 'node',
output: {
path: path.resolve('./build', project.basePath),
filename: 'build/tests.js'
},
externals: [nodeExternals()],
module: {
rules: [
{
test: /\.js?$/,
use: [
{
loader: 'babel-loader',
options: {
cacheDirectory: true,
plugins: [
'babel-plugin-transform-class-properties',
'babel-plugin-syntax-dynamic-import',
[
'babel-plugin-transform-runtime',
{
helpers: true,
polyfill: false, // we polyfill needed features in src/normalize.js
regenerator: true
},
],
[
'babel-plugin-transform-object-rest-spread',
{
useBuiltIns: true // we polyfill Object.assign in src/normalize.js
},
],
],
presets: [
'babel-preset-react',
['babel-preset-env', {
targets: {
ie9: true,
uglify: true,
modules: false
}
}],
]
}
}
],
exclude: /node_modules/
},
{
test: /\.(sass|scss)$/,
use: [
'css-loader?modules&importLoaders=1&localIdentName=[name]__[local]__[hash:base64:5]',
'sass-loader',
]
},
{
test: /\.(gif|png|jpe?g|svg)$/i,
loaders: [
'file-loader',
{
loader: 'image-webpack-loader',
query: {
progressive: true,
optipng: {
optimizationLevel: 7
},
gifsicle: {
interlaced: false
},
pngquant: {
quality: '65-90',
speed: 4
}
}
}
]
},
{
// delays coverage til after tests are run, fixing transpiled source
// coverage error
enforce: 'post',
test: /\.js$/,
exclude: /(tests|node_modules|bower_components|build)\//,
loader: 'istanbul-instrumenter-loader'
}
]
},
resolve: {
extensions: ['.js', '.jsx']
}
};
?
'についての良い点ですプロパティを含む。しかし、結果は同じです。 (これはOSX上で実行されています)。 –