From 3df8815852849b561c69a71c091862997315c454 Mon Sep 17 00:00:00 2001 From: Tim Buckley Date: Tue, 22 Mar 2016 15:47:09 -0600 Subject: [PATCH] Use Chrome for unit tests and update dependencies This adds karma-chrome-launcher and uses it instead of phantomjs for running all unit tests. Currently, the 'phantomjs-prebuilt' package downloads binaries from bitbucket, and gate job have been failing due to rate limiting from their servers. Since Chrome is already being installed from local mirrors as part of the 'npm run' job template, this should avoid further problems. Additionally, this bumps all npm dependencies to their latest versions and removes several (such as babel) that are unused. Some minor tweaks to gulp tasks were needed to account for changes, but these are fairly minimal. Change-Id: Ia003280ab30f2912935140ecd4734ae8a08dd44d --- gulp/tasks/browserify.js | 3 -- gulp/tasks/clean.js | 2 +- gulp/tasks/unit.js | 24 ++++------ package.json | 96 +++++++++++++++++++--------------------- test/karma.conf.js | 6 +-- 5 files changed, 57 insertions(+), 74 deletions(-) diff --git a/gulp/tasks/browserify.js b/gulp/tasks/browserify.js index f10b010..213ec35 100644 --- a/gulp/tasks/browserify.js +++ b/gulp/tasks/browserify.js @@ -10,7 +10,6 @@ var buffer = require('vinyl-buffer'); var streamify = require('gulp-streamify'); var watchify = require('watchify'); var browserify = require('browserify'); -var babelify = require('babelify'); var uglify = require('gulp-uglify'); var handleErrors = require('../util/handleErrors'); var browserSync = require('browser-sync'); @@ -35,9 +34,7 @@ function buildScript(file) { } var transforms = [ - babelify, ngAnnotate, - 'brfs', 'bulkify' ]; diff --git a/gulp/tasks/clean.js b/gulp/tasks/clean.js index 6db4a7a..352964a 100644 --- a/gulp/tasks/clean.js +++ b/gulp/tasks/clean.js @@ -6,6 +6,6 @@ var del = require('del'); gulp.task('clean', function(cb) { - del([config.dist.root], cb); + return del([config.dist.root]); }); diff --git a/gulp/tasks/unit.js b/gulp/tasks/unit.js index 25cca6c..79e746c 100644 --- a/gulp/tasks/unit.js +++ b/gulp/tasks/unit.js @@ -1,21 +1,13 @@ 'use strict'; +var path = require('path'); + var gulp = require('gulp'); -var karma = require('gulp-karma'); +var karma = require('karma'); var config = require('../config'); -gulp.task('unit', ['views'], function() { - - // Nonsensical source to fall back to files listed in karma.conf.js, - // see https://github.com/lazd/gulp-karma/issues/9 - return gulp.src('./thisdoesntexist') - .pipe(karma({ - configFile: config.test.karma, - action: 'run' - })) - .on('error', function(err) { - // Make sure failed tests cause gulp to exit non-zero - throw err; - }); - -}); \ No newline at end of file +gulp.task('unit', ['views'], function(done) { + new karma.Server({ + configFile: path.join(process.cwd(), config.test.karma) + }, done).start(); +}); diff --git a/package.json b/package.json index 6fb2ce0..8a5ce9a 100644 --- a/package.json +++ b/package.json @@ -6,65 +6,59 @@ "repository": "none", "license": "Apache 2.0", "devDependencies": { - "angular": "1.5.0", - "angular-fontawesome": "^0.4.0", - "angular-mocks": "1.5.0", - "angular-ui-bootstrap": "^1.0.0", - "angular-ui-router": "^0.2.15", - "babelify": "^5.0.4", - "bootstrap": "^3.3.5", - "brfs": "^1.2.0", - "browser-sync": "^2.7.6", - "browserify": "^5.10.0", - "browserify-istanbul": "^0.2.0", - "browserify-ngannotate": "^0.1.0", + "angular": "1.5.2", + "angular-fontawesome": "0.4.0", + "angular-mocks": "1.5.2", + "angular-ui-bootstrap": "1.2.5", + "angular-ui-router": "0.2.18", + "bootstrap": "3.3.6", + "browser-sync": "2.11.2", + "browserify": "13.0.0", + "browserify-istanbul": "2.0.0", + "browserify-ngannotate": "2.0.0", "bulk-require": "^0.2.1", - "bulkify": "^1.1.1", + "bulkify": "1.1.1", "d3": "^3.5.6", - "del": "^0.1.3", - "eslint": "^1.10.3", + "del": "2.2.0", + "eslint": "~1.10.3", "eslint-config-openstack": "1.2.4", "eslint-plugin-angular": "0.12.0", - "express": "^4.7.2", - "gulp": "^3.8.8", - "gulp-angular-templatecache": "^1.3.0", - "gulp-autoprefixer": "^2.0.0", - "gulp-changed": "^1.0.0", - "gulp-filter": "^3.0.1", - "gulp-gzip": "^0.0.8", - "gulp-if": "^1.2.5", - "gulp-karma": "0.0.4", - "gulp-notify": "^2.0.0", - "gulp-protractor": "0.0.11", - "gulp-rename": "^1.2.0", - "gulp-replace": "^0.5.4", - "gulp-sass": "^1.3.3", - "gulp-sourcemaps": "^1.3.0", + "express": "4.13.4", + "gulp": "3.9.1", + "gulp-angular-templatecache": "1.8.0", + "gulp-autoprefixer": "3.1.0", + "gulp-changed": "1.3.0", + "gulp-filter": "4.0.0", + "gulp-gzip": "1.2.0", + "gulp-if": "2.0.0", + "gulp-notify": "2.2.0", + "gulp-protractor": "2.2.0", + "gulp-rename": "1.2.2", + "gulp-replace": "0.5.4", + "gulp-sass": "2.2.0", + "gulp-sourcemaps": "1.6.0", "gulp-streamify": "0.0.5", - "gulp-uglify": "^1.0.1", - "gulp-util": "^3.0.1", - "isparta": "^3.0.3", - "jasmine-ajax": "^3.1.1", - "jasmine-core": "^2.3.4", - "jasmine-fixture": "^1.3.2", - "karma": "~0.12.0", - "karma-babel-preprocessor": "^4.0.1", - "karma-browserify": "^4.0.0", - "karma-cli": "0.0.4", - "karma-coverage": "0.2.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "0.2.0", - "morgan": "^1.6.1", + "gulp-uglify": "1.5.3", + "gulp-util": "3.0.7", + "isparta": "4.0.0", + "jasmine-ajax": "3.2.0", + "jasmine-core": "2.4.1", + "jasmine-fixture": "2.0.0", + "karma": "~0.13.22", + "karma-browserify": "5.0.3", + "karma-chrome-launcher": "0.2.3", + "karma-coverage": "0.5.5", + "karma-jasmine": "0.3.8", + "morgan": "1.7.0", "nprogress": "^0.2.0", - "phantomjs-prebuilt": "^2.1.1", - "pretty-hrtime": "^1.0.0", + "pretty-hrtime": "1.0.2", "protractor": "^2.2.0", - "run-sequence": "^1.1.2", + "run-sequence": "1.1.5", "tiny-lr": "^0.1.6", - "uglifyify": "^3.0.1", - "vinyl-buffer": "^1.0.0", - "vinyl-source-stream": "^1.1.0", - "watchify": "^3.3.1" + "uglifyify": "3.0.1", + "vinyl-buffer": "1.0.0", + "vinyl-source-stream": "1.1.0", + "watchify": "3.7.0" }, "scripts": { "postinstall": "if [ ! -d .venv ]; then tox -epy27 --notest; fi", diff --git a/test/karma.conf.js b/test/karma.conf.js index e75b803..fdaf6cd 100644 --- a/test/karma.conf.js +++ b/test/karma.conf.js @@ -10,10 +10,10 @@ module.exports = function(config) { basePath: '../', frameworks: ['jasmine', 'browserify'], preprocessors: { - 'app/js/**/*.js': ['browserify', 'babel', 'coverage'] + 'app/js/**/*.js': ['browserify', 'coverage'] }, - browsers: ['PhantomJS'], - reporters: ['progress', 'coverage'], + browsers: ['Chrome'], + reporters: ['progress'], autoWatch: true, singleRun: true,