mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 01:38:56 -04:00
Merge pull request #4742 from w33ble/test-coverage
Return of the test coverage
This commit is contained in:
commit
85e3579105
9 changed files with 63 additions and 3 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -16,3 +16,4 @@ installedPlugins
|
|||
disabledPlugins
|
||||
webpackstats.json
|
||||
config/kibana.dev.yml
|
||||
coverage
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
"test:quick": "grunt test:quick",
|
||||
"test:browser": "grunt test:browser",
|
||||
"test:server": "grunt test:server",
|
||||
"test:coverage": "grunt test:coverage",
|
||||
"build": "grunt build",
|
||||
"start": "./bin/kibana --dev",
|
||||
"precommit": "grunt lintStagedFiles",
|
||||
|
@ -141,8 +142,10 @@
|
|||
"gruntify-eslint": "^1.0.0",
|
||||
"html-entities": "^1.1.1",
|
||||
"husky": "^0.8.1",
|
||||
"istanbul-instrumenter-loader": "^0.1.3",
|
||||
"karma": "^0.13.3",
|
||||
"karma-chrome-launcher": "^0.2.0",
|
||||
"karma-coverage": "^0.5.0",
|
||||
"karma-firefox-launcher": "^0.1.6",
|
||||
"karma-growl-reporter": "^0.1.1",
|
||||
"karma-ie-launcher": "^0.2.0",
|
||||
|
|
|
@ -125,6 +125,7 @@ class BaseOptimizer {
|
|||
}, babelOptions)
|
||||
}
|
||||
].concat(this.env.loaders),
|
||||
postLoaders: this.env.postLoaders || [],
|
||||
noParse: this.env.noParse,
|
||||
},
|
||||
|
||||
|
|
|
@ -6,10 +6,17 @@ module.exports = (kibana) => {
|
|||
let findSourceFiles = require('./findSourceFiles');
|
||||
|
||||
return new kibana.Plugin({
|
||||
config: (Joi) => {
|
||||
return Joi.object({
|
||||
enabled: Joi.boolean().default(true),
|
||||
instrument: Joi.boolean().default(false)
|
||||
}).default();
|
||||
},
|
||||
|
||||
uiExports: {
|
||||
bundle: async (UiBundle, env, apps) => {
|
||||
|
||||
let modules = [];
|
||||
let config = kibana.config;
|
||||
|
||||
// add the modules from all of the apps
|
||||
for (let app of apps) {
|
||||
|
@ -23,6 +30,14 @@ module.exports = (kibana) => {
|
|||
|
||||
for (let f of testFiles) modules.push(f);
|
||||
|
||||
if (config.get('testsBundle.instrument')) {
|
||||
env.addPostLoader({
|
||||
test: /\.jsx?$/,
|
||||
exclude: /[\/\\](__tests__|node_modules|bower_components|webpackShims)[\/\\]/,
|
||||
loader: 'istanbul-instrumenter'
|
||||
});
|
||||
}
|
||||
|
||||
return new UiBundle({
|
||||
id: 'tests',
|
||||
modules: modules,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"name": "tests_bundle",
|
||||
"name": "testsBundle",
|
||||
"version": "0.0.0"
|
||||
}
|
||||
|
|
|
@ -54,6 +54,7 @@ module.exports = class UiBundlerEnv {
|
|||
|
||||
// webpack loaders map loader configuration to regexps
|
||||
this.loaders = [];
|
||||
this.postLoaders = [];
|
||||
}
|
||||
|
||||
consumePlugin(plugin) {
|
||||
|
@ -74,6 +75,11 @@ module.exports = class UiBundlerEnv {
|
|||
for (let loader of arr(spec)) this.addLoader(loader);
|
||||
};
|
||||
|
||||
case 'postLoaders':
|
||||
return (plugin, spec) => {
|
||||
for (let loader of arr(spec)) this.addPostLoader(loader);
|
||||
};
|
||||
|
||||
case 'noParse':
|
||||
return (plugin, spec) => {
|
||||
for (let re of arr(spec)) this.addNoParse(re);
|
||||
|
@ -94,6 +100,10 @@ module.exports = class UiBundlerEnv {
|
|||
this.loaders.push(loader);
|
||||
}
|
||||
|
||||
addPostLoader(loader) {
|
||||
this.postLoaders.push(loader);
|
||||
}
|
||||
|
||||
addNoParse(regExp) {
|
||||
this.noParse.push(regExp);
|
||||
}
|
||||
|
|
|
@ -40,5 +40,15 @@ module.exports = function (grunt) {
|
|||
|
||||
dev: { singleRun: false },
|
||||
unit: { singleRun: true },
|
||||
coverage: {
|
||||
singleRun: true,
|
||||
reporters: ['coverage'],
|
||||
coverageReporter: {
|
||||
reporters: [
|
||||
{ type: 'html', dir: 'coverage' },
|
||||
{ type: 'text-summary' },
|
||||
]
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
module.exports = function (grunt) {
|
||||
let platform = require('os').platform();
|
||||
let {resolve} = require('path');
|
||||
let root = p => resolve(__dirname, '../../', p);
|
||||
|
||||
|
@ -10,7 +11,7 @@ module.exports = function (grunt) {
|
|||
quiet: false,
|
||||
failOnError: false
|
||||
},
|
||||
cmd: './bin/kibana',
|
||||
cmd: /^win/.test(platform) ? '.\\bin\\kibana.bat' : './bin/kibana',
|
||||
args: [
|
||||
'--server.port=5610',
|
||||
'--env.name=development',
|
||||
|
@ -20,6 +21,24 @@ module.exports = function (grunt) {
|
|||
]
|
||||
},
|
||||
|
||||
testCoverageServer: {
|
||||
options: {
|
||||
wait: false,
|
||||
ready: /Server running/,
|
||||
quiet: false,
|
||||
failOnError: false
|
||||
},
|
||||
cmd: /^win/.test(platform) ? '.\\bin\\kibana.bat' : './bin/kibana',
|
||||
args: [
|
||||
'--server.port=5610',
|
||||
'--env.name=development',
|
||||
'--logging.json=false',
|
||||
'--optimize.bundleFilter=tests',
|
||||
'--plugins.initialize=false',
|
||||
'--testsBundle.instrument=true'
|
||||
]
|
||||
},
|
||||
|
||||
devTestServer: {
|
||||
options: {
|
||||
wait: false,
|
||||
|
|
|
@ -2,6 +2,7 @@ var _ = require('lodash');
|
|||
module.exports = function (grunt) {
|
||||
grunt.registerTask('test:server', [ 'simplemocha:all' ]);
|
||||
grunt.registerTask('test:browser', [ 'run:testServer', 'karma:unit' ]);
|
||||
grunt.registerTask('test:coverage', [ 'run:testCoverageServer', 'karma:coverage' ]);
|
||||
|
||||
grunt.registerTask('test:quick', [
|
||||
'test:server',
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue