Reputation: 8972
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 **
Upvotes: 5
Views: 3137
Reputation: 161
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'
}
Upvotes: 2
Reputation: 842
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'
Upvotes: 0
Reputation: 54504
You need to set ANGULAR_SCENARIO_ADAPTER
. Karma
doesn't use JASMINE_ADAPTER
.
Upvotes: 0