Add checkPlugins task to check for plugins before running tests. (#8981)

This commit is contained in:
CJ Cenizal 2016-11-15 16:11:03 -08:00 committed by GitHub
parent 054e9b1f4e
commit 038a8340b8
2 changed files with 47 additions and 2 deletions

29
tasks/check_plugins.js Normal file
View file

@ -0,0 +1,29 @@
import fs from 'fs';
import path from 'path';
export default function checkPlugins(grunt) {
grunt.registerTask('checkPlugins', 'Checks for plugins which may disrupt tests', function checkPlugins() {
const done = this.async();
const pluginsDir = path.resolve('./plugins/');
fs.readdir(pluginsDir, (err, files) => {
if (!files) {
return done();
}
const plugins = files.filter(file => {
return fs.statSync(path.join(pluginsDir, file)).isDirectory();
});
if (plugins.length) {
grunt.log.error('===================================================================================================');
plugins.forEach(plugin => {
grunt.log.error(`The ${plugin} plugin may disrupt the test process. Consider removing it and re-running your tests.`);
});
grunt.log.error('===================================================================================================');
}
done();
});
});
}

View file

@ -1,4 +1,5 @@
import _, { keys } from 'lodash';
const visualRegression = require('../utilities/visual_regression');
module.exports = function (grunt) {
@ -21,8 +22,19 @@ module.exports = function (grunt) {
}
);
grunt.registerTask('test:server', [ 'esvm:test', 'simplemocha:all', 'esvm_shutdown:test' ]);
grunt.registerTask('test:browser', ['run:testServer', 'karma:unit']);
grunt.registerTask('test:server', [
'checkPlugins',
'esvm:test',
'simplemocha:all',
'esvm_shutdown:test',
]);
grunt.registerTask('test:browser', [
'checkPlugins',
'run:testServer',
'karma:unit',
]);
grunt.registerTask('test:browser-ci', () => {
const ciShardTasks = keys(grunt.config.get('karma'))
.filter(key => key.startsWith('ciShard-'))
@ -35,6 +47,7 @@ module.exports = function (grunt) {
...ciShardTasks
]);
});
grunt.registerTask('test:coverage', [ 'run:testCoverageServer', 'karma:coverage' ]);
grunt.registerTask('test:quick', [
@ -45,11 +58,13 @@ module.exports = function (grunt) {
]);
grunt.registerTask('test:dev', [
'checkPlugins',
'run:devTestServer',
'karma:dev'
]);
grunt.registerTask('test:ui', [
'checkPlugins',
'esvm:ui',
'run:testUIServer',
'run:chromeDriver',
@ -66,6 +81,7 @@ module.exports = function (grunt) {
]);
grunt.registerTask('test:ui:runner', [
'checkPlugins',
'clean:screenshots',
'run:devChromeDriver',
'intern:dev'