diff --git a/.travis.yml b/.travis.yml
index 88d499a..e8d01a5 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 f23dc57..a1adf03 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 eb04f38..cc5620a 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 decd5e3..8274dae 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"
},