gulp and karma, file karma.conf.js does not exist

匿名 (未验证) 提交于 2019-12-03 03:08:02

问题:

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.

回答1:

See gulp task can't find karma.conf.js for an explantation about __dirname.

Or use:

var Server = require('karma').Server gulp.task('test', function (done) {    new Server({      configFile: require('path').resolve('karma.conf.js'),      singleRun: true    }, done).start();  }); 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!