diff --git a/.travis.yml b/.travis.yml index 88d499a2e..e8d01a5c5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,11 +1,12 @@ language: node_js node_js: - '0.10' -notifications: - hipchat: - rooms: - secure: p6IUoOsKoM7cEmUsYh9JV5XKpUSASXukGkiBxdPU+ELM1CgNT0PyUROXwgDvI0vjSBCJemNh5sqrEQWiT70PcR69rH1JQ6+mHZah4r6W1Ql0NuWibvsofLyCeTzW2nrptdx97Z4y65NiHsaaOo3F+BShTeBpmBAvRMNp/FLMjWU= - template: - - '%{repository}#%{build_number} (%{branch} - %{commit} : %{author}): %{message} (Details/Change view)' - format: html - on_success: never +before_install: + - npm install -g bower + - npm install -g grunt-cli + - export DISPLAY=:99.0 + - sh -e /etc/init.d/xvfb start +install: + - bower install + - npm install + diff --git a/gulpfile.js b/gulpfile.js index f23dc5760..a1adf0391 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -33,12 +33,23 @@ function ignoreError() { /* jshint ignore:end */ } -function testMocha() { - return gulp.src(tests).pipe(new mocha({reporter: 'spec'})); -} +var testMocha = function() { + return gulp.src(tests).pipe(new mocha({ + reporter: 'spec' + })); +}; + +var testKarma = shell.task([ + './node_modules/karma/bin/karma start --single-run --browsers Firefox' +]); + gulp.task('test', testMocha); +gulp.task('test-all', function(callback) { + runSequence(['test'], ['karma'], callback); +}); + gulp.task('test-nofail', function() { return testMocha().on('error', ignoreError); }); @@ -55,6 +66,10 @@ gulp.task('watch:lint', function() { return gulp.watch(alljs, ['lint']); }); +gulp.task('watch:browser', function() { + return gulp.watch(alljs, ['browser', 'browser-test']); +}); + gulp.task('coverage', shell.task(['istanbul cover _mocha -- --recursive'])); gulp.task('jsdoc', function() { @@ -81,13 +96,13 @@ gulp.task('browser', function() { .pipe(gulp.dest('browser')); }); -gulp.task('browser-test', shell.task([ - 'find test/ -type f -name "*.js" | xargs browserify -o ./browser/tests.js' -])); +gulp.task('browser-test', function() { + shell.task([ + 'find test/ -type f -name "*.js" | xargs browserify -o ./browser/tests.js' + ]); +}); -gulp.task('karma', shell.task([ - './node_modules/karma/bin/karma start karma.conf.js' -])); +gulp.task('karma', testKarma); gulp.task('minify', function() { return gulp.src('dist/bitcore.js') diff --git a/karma.conf.js b/karma.conf.js index eb04f3892..cc5620a17 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,7 +1,11 @@ +'use strict'; + // karma.conf.js module.exports = function(config) { config.set({ frameworks: ['mocha'], + browsers: ['Chrome', 'Firefox'], + singleRun: true, files: [ 'browser/tests.js' ] diff --git a/package.json b/package.json index decd5e373..8274dae18 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "main": "index.js", "scripts": { "lint": "gulp lint", - "test": "gulp test", + "test": "gulp test-all", "coverage": "gulp coverage", "build": "gulp" },