My karma.conf.js files looks like this :
// Karma configuration
// Generated on Tue Jun 11 2013 14:14:12 GMT+0100 (GMT Daylight Time)
// base path, that will be used to resolve files and exclude
basePath = '';
// list of files / patterns to load in the browser
files = [
JASMINE,
JASMINE_ADAPTER,
'../Scripts/angular/angular.js',
'../Scripts/angular/restangular/underscore-min.js',
'../Scripts/angular/restangular/restangular-min.js',
'../Scripts/angular/angular-*.js',
'../Scripts/angular/angular-test/angular-*.js',
'../Scripts/angular/angular-ui/*.js',
'../Scripts/angular/angular-strap/*.js',
'../Scripts/angular/angular-http-auth/*.js',
'../uifw/scripts/ui-framework-angular.js',
'../app/app.js',
'../app/**/*.js',
'unit/**/*.js'
];
// list of files to exclude
exclude = [
'../Scripts/angular/angular-test/angular-scenario.js'
];
preprocessors = {
'**/../app/**/*.js': 'coverage'
};
coverageReporter = {
type: 'html',
dir: 'coverage/'
};
// test results reporter to use
// possible values: 'dots', 'progress', 'junit'
reporters = ['progress', 'coverage'];
// web server port
port = 9876;
// cli runner port
runnerPort = 9100;
// enable / disable colors in the output (reporters and logs)
colors = true;
// level of logging
// possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
logLevel = LOG_DEBUG;
// enable / disable watching file and executing tests whenever any file changes
autoWatch = true;
// Start these browsers, currently available:
// - Chrome
// - ChromeCanary
// - Firefox
// - Opera
// - Safari (only Mac)
// - PhantomJS
// - IE (only Windows)
browsers = ['Chrome'];
// If browser does not capture in given timeout [ms], kill it
captureTimeout = 60000;
// Continuous Integration mode
// if true, it capture browsers, run tests and exit
singleRun = false;
My folder structure looks like this :
Root
|__ App
|__ Scripts
|__ Tests
|__ .... other folders
Karma.conf.js
is located inside the tests folder. Karma start karma.conf.j
is run from within the tests
folder.
My tests run and a coverage folder is created, but coverage always shows 100%.
What am I doing wrong?
EDIT:
In fact it turned out to be a simple answer. the preprocessors = { '**/../app/**/*.js': 'coverage' };
no longer needs to be prefixed with **
You need to set ANGULAR_SCENARIO_ADAPTER
. Karma
doesn't use JASMINE_ADAPTER
.
To me it seems like your problem is that you are unable to find any of the files you are trying to generate coverage for. Your report does say that 0/0 lines are ran, 0/0 statements and so on.
I had a similar problem that was caused by me using lower case letters instead of upper case ones and it seems you might have the same problem as you have a folder named "App" but you reference it with "app" in the config. See if you can get it to work by writing **/../App/**/*.js': 'coverage'
Also I am not sure but I think you should write ../App/**/*.js': 'coverage'
instead of **/../App/**/*.js': 'coverage'
Set up webpack with istanbul-instrumenter-loader got me on the right track. { test: /\\.ts/, include: helpers.root('src', 'app'), loader: 'istanbul-instrumenter-loader', enforce: 'post' }
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.