refactor(perf): e2e tests and benchpress should be written in es6
This commit is contained in:
parent
373fd7d04a
commit
fe2a09bc7f
12
README.md
12
README.md
@ -6,6 +6,8 @@
|
||||
|
||||
1. `npm install`
|
||||
2. `npm install -g gulp karma karma-cli`
|
||||
3. `npm install -g protractor`
|
||||
4. `webdriver-manager update`
|
||||
3. Optionally install Dart SDK (only if you plan on building Dart applications)
|
||||
1. [Install the Dart SDK](https://www.dartlang.org/tools/sdk/)
|
||||
2. [Add the Dart SDK's `bin` directory to your system path](https://www.dartlang.org/tools/pub/installing.html)
|
||||
@ -34,18 +36,24 @@
|
||||
|
||||
2. `gulp clean` -> cleans the `dist` folder
|
||||
|
||||
### Tests:
|
||||
### Unit tests:
|
||||
|
||||
1. `karma start karma-js.conf.js`: JS tests
|
||||
2. `karma start karma-dart.conf.js`: Dart tests
|
||||
|
||||
Notes for all tests:
|
||||
Notes for transpiler tests:
|
||||
|
||||
The karma preprocessor is setup in a way so that after every test run
|
||||
the transpiler is reloaded. With that it is possible to make changes
|
||||
to the preprocessor and run the tests without exiting karma
|
||||
(just touch a test file that you would like to run).
|
||||
|
||||
### Performance tests
|
||||
|
||||
1. `gulp build.cjs` (builds benchpress and tests into `dist/cjs` folder)
|
||||
2. `protractor protractor-perf-js.conf.js`: JS performance tests
|
||||
3. `protractor protractor-perf-dart2js.conf.js`: Dart2JS performance tests
|
||||
|
||||
### Examples:
|
||||
|
||||
To see the examples, first build the project as described above.
|
||||
|
75
gulpfile.js
75
gulpfile.js
@ -27,6 +27,18 @@ var _COMPILER_CONFIG_JS_DEFAULT = {
|
||||
modules: 'instantiate'
|
||||
};
|
||||
|
||||
var CJS_COMPILER_OPTIONS = {
|
||||
sourceMaps: true,
|
||||
annotations: false, // parse annotations
|
||||
types: false, // parse types
|
||||
// TODO(tbosch): Right now, traceur generates imports that
|
||||
// rely on absolute paths. This is why we are not using this...
|
||||
script: true, // parse as a script
|
||||
memberVariables: false, // parse class fields
|
||||
typeAssertions: false,
|
||||
modules: null // not needed
|
||||
};
|
||||
|
||||
var _HTLM_DEFAULT_SCRIPTS_JS = [
|
||||
{src: '/deps/traceur-runtime.js', mimeType: 'text/javascript'},
|
||||
{src: '/rtts_assert/lib/rtts_assert.js', mimeType: 'text/javascript'},
|
||||
@ -51,7 +63,12 @@ var CONFIG = {
|
||||
prod: 'dist/js/prod',
|
||||
dart2js: 'dist/js/dart2js'
|
||||
},
|
||||
dart: 'dist/dart'
|
||||
dart: 'dist/dart',
|
||||
cjs: {
|
||||
all: 'dist/cjs',
|
||||
tools: 'dist/cjs/tools',
|
||||
e2eTest: 'dist/cjs/e2e_test'
|
||||
}
|
||||
},
|
||||
srcFolderMapping: {
|
||||
'default': 'lib',
|
||||
@ -72,12 +89,20 @@ var CONFIG = {
|
||||
},
|
||||
transpile: {
|
||||
src: {
|
||||
js: ['modules/**/*.js', 'modules/**/*.es6', '!modules/**/perf/**/*'],
|
||||
dart: ['modules/**/*.js', '!modules/**/perf/**/*']
|
||||
js: ['modules/**/*.js', 'modules/**/*.es6', '!modules/**/e2e_test/**'],
|
||||
dart: ['modules/**/*.js', '!modules/**/e2e_test/**'],
|
||||
cjs: {
|
||||
tools: ['tools/**/*.es6', '!tools/transpiler/**'],
|
||||
e2eTest: ['modules/**/e2e_test/**/*.es6']
|
||||
}
|
||||
},
|
||||
copy: {
|
||||
js: ['modules/**/*.es5', '!modules/**/perf/**/*'],
|
||||
dart: ['modules/**/*.dart', '!modules/**/perf/**/*']
|
||||
js: ['modules/**/*.es5', '!modules/**/e2e_test/**'],
|
||||
dart: ['modules/**/*.dart', '!modules/**/e2e_test/**'],
|
||||
cjs: {
|
||||
tools: ['tools/**/*.es5', '!tools/transpiler/**'],
|
||||
e2eTest: ['modules/**/e2e_test/**/*.es5']
|
||||
}
|
||||
},
|
||||
options: {
|
||||
js: {
|
||||
@ -96,7 +121,8 @@ var CONFIG = {
|
||||
script: false, // parse as a module
|
||||
memberVariables: true, // parse class fields
|
||||
outputLanguage: 'dart'
|
||||
}
|
||||
},
|
||||
cjs: CJS_COMPILER_OPTIONS
|
||||
}
|
||||
},
|
||||
html: {
|
||||
@ -134,6 +160,11 @@ gulp.task('build/clean.dart', clean(gulp, gulpPlugins, {
|
||||
path: CONFIG.dest.dart
|
||||
}));
|
||||
|
||||
gulp.task('build/clean.cjs', clean(gulp, gulpPlugins, {
|
||||
path: CONFIG.dest.cjs.all
|
||||
}));
|
||||
|
||||
|
||||
// ------------
|
||||
// deps
|
||||
|
||||
@ -177,6 +208,28 @@ gulp.task('build/transpile.dart', transpile(gulp, gulpPlugins, {
|
||||
srcFolderMapping: CONFIG.srcFolderMapping
|
||||
}));
|
||||
|
||||
gulp.task('build/transpile/tools.cjs', transpile(gulp, gulpPlugins, {
|
||||
src: CONFIG.transpile.src.cjs.tools,
|
||||
copy: CONFIG.transpile.copy.cjs.tools,
|
||||
dest: CONFIG.dest.cjs.tools,
|
||||
outputExt: 'js',
|
||||
options: CONFIG.transpile.options.cjs,
|
||||
srcFolderMapping: {
|
||||
'default': 'src'
|
||||
}
|
||||
}));
|
||||
|
||||
gulp.task('build/transpile/e2eTest.cjs', transpile(gulp, gulpPlugins, {
|
||||
src: CONFIG.transpile.src.cjs.e2eTest,
|
||||
copy: CONFIG.transpile.copy.cjs.e2eTest,
|
||||
dest: CONFIG.dest.cjs.e2eTest,
|
||||
outputExt: 'js',
|
||||
options: CONFIG.transpile.options.cjs,
|
||||
srcFolderMapping: {
|
||||
'default': 'src'
|
||||
}
|
||||
}));
|
||||
|
||||
// ------------
|
||||
// html
|
||||
|
||||
@ -339,8 +392,14 @@ gulp.task('build.js.prod', function() {
|
||||
);
|
||||
});
|
||||
|
||||
gulp.task('build.cjs', function() {
|
||||
return runSequence(
|
||||
['build/transpile/tools.cjs', 'build/transpile/e2eTest.cjs']
|
||||
);
|
||||
});
|
||||
|
||||
gulp.task('build.js', ['build.js.dev', 'build.js.prod']);
|
||||
|
||||
gulp.task('clean', ['build/clean.js', 'build/clean.dart']);
|
||||
gulp.task('clean', ['build/clean.js', 'build/clean.dart', 'build/clean.cjs']);
|
||||
|
||||
gulp.task('build', ['build.js', 'build.dart']);
|
||||
gulp.task('build', ['build.js', 'build.dart', 'build.cjs']);
|
||||
|
@ -1,5 +1,5 @@
|
||||
"use strict";
|
||||
var benchpress = require('../../../../tools/benchpress/benchpress.js');
|
||||
var benchpress = require('../../../tools/benchpress/index.js');
|
||||
|
||||
describe('ng2 change detection benchmark', function () {
|
||||
|
@ -1,5 +1,5 @@
|
||||
"use strict";
|
||||
var benchpress = require('../../../../tools/benchpress/benchpress.js');
|
||||
var benchpress = require('../../../tools/benchpress/index.js');
|
||||
|
||||
describe('ng2 compiler benchmark', function () {
|
||||
|
@ -1,5 +1,5 @@
|
||||
"use strict";
|
||||
var benchpress = require('../../../../tools/benchpress/benchpress.js');
|
||||
var benchpress = require('../../../tools/benchpress/index.js');
|
||||
|
||||
describe('ng2 di benchmark', function () {
|
||||
|
@ -1,5 +1,5 @@
|
||||
"use strict";
|
||||
var benchpress = require('../../../../tools/benchpress/benchpress.js');
|
||||
var benchpress = require('../../../tools/benchpress/index.js');
|
||||
|
||||
describe('ng2 element injector benchmark', function () {
|
||||
|
@ -1,5 +1,5 @@
|
||||
"use strict";
|
||||
var benchpress = require('../../../../tools/benchpress/benchpress.js');
|
||||
var benchpress = require('../../../tools/benchpress/index.js');
|
||||
|
||||
describe('ng2 tree benchmark', function () {
|
||||
|
@ -1,5 +1,5 @@
|
||||
"use strict";
|
||||
var benchpress = require('../../../../tools/benchpress/benchpress.js');
|
||||
var benchpress = require('../../../tools/benchpress/index.js');
|
||||
|
||||
describe('ng1.x compiler benchmark', function () {
|
||||
|
@ -1,5 +1,5 @@
|
||||
"use strict";
|
||||
var benchpress = require('../../../../tools/benchpress/benchpress.js');
|
||||
var benchpress = require('../../../tools/benchpress/index.js');
|
||||
|
||||
describe('ng1.x tree benchmark', function () {
|
||||
|
@ -1,6 +1,9 @@
|
||||
// load traceur runtime as our tests are written in es6
|
||||
require('traceur/bin/traceur-runtime.js');
|
||||
|
||||
var config = exports.config = {
|
||||
|
||||
specs: ['modules/*/test/**/*_perf.js'],
|
||||
specs: ['dist/cjs/**/*_perf.js'],
|
||||
|
||||
params: {
|
||||
timeBenchmark: {
|
||||
|
@ -1,5 +1,5 @@
|
||||
var timeBenchmark = require('./time_benchmark');
|
||||
var tools = require('./tools');
|
||||
var timeBenchmark = require('./src/time_benchmark');
|
||||
var tools = require('./src/tools');
|
||||
|
||||
module.exports = {
|
||||
runTimeBenchmark: timeBenchmark.runTimeBenchmark,
|
6
tools/build/benchpress.js
Normal file
6
tools/build/benchpress.js
Normal file
@ -0,0 +1,6 @@
|
||||
module.exports = function(gulp, plugins, config) {
|
||||
return function(done) {
|
||||
del(config.path, done);
|
||||
};
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user