I have a basic AngularJS app and want to have all my terminal command run with gulp tasks eg $ gulp dev
for the development server and $ gulp unitTest
for testing etc.
I have installed Gulp as per the Docs using $ npm install --save-dev gulp
with my gulpfile.js
in the root of the project file. I have also done the same for karma's install and config file.
It is worth stating now that I want all the npm installs tagged with --save
for easily move the project around the office and servers.
When it comes to adding the task to Gulp I have to us a relative (to the karma module) path for the configFile
option to find the config but then It does not find the tests.
the following gulpfile.js produces the error ERROR [config]: File karma.conf.js does not exist!
var gulp = require('gulp'), // .... karma = require('karma').Server; gulp.task('test', function(done) { var karmaServerOptions = { configFile: 'karma.conf.js', // works if relative path from ./node_modules/karma/lib/config.js singleRun: true }; karma.start( karmaServerOptions, function(exitStatus) { done(exitStatus ? 'There are failing tests' : undefined); } ); });
karma.conf.js:
// Karma configuration // Generated on Thu Aug 06 2015 13:38:12 GMT+0100 (BST) module.exports = function(config) { config.set({ // base path that will be used to resolve all patterns (eg. files, exclude) basePath: './', // frameworks to use // available frameworks: https://npmjs.org/browse/keyword/karma-adapter frameworks: ['jasmine'], // list of files / patterns to load in the browser files: [ // '**/*js', 'node_modules/angular/angular.js', 'app/**/*.js', // 'unitTests/**/*Spec.js', // 'unitTests/**/*spec.js' 'unitTests/**/*.js' ], // list of files to exclude exclude: [], // preprocess matching files before serving them to the browser // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor preprocessors: {}, // test results reporter to use // possible values: 'dots', 'progress' // available reporters: https://npmjs.org/browse/keyword/karma-reporter reporters: ['progress'], // web server port port: 9876, // enable / disable colors in the output (reporters and logs) colors: true, // level of logging // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG logLevel: config.LOG_INFO, // enable / disable watching file and executing tests whenever any file changes autoWatch: true, // start these browsers // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher browsers: ['Chrome'], // Continuous Integration mode // if true, Karma captures browsers, runs the tests and exits singleRun: false }) }
note: The files array is a bit of a mess as it still has some, but not all, of my experiments in it.