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.