Not sure if you are showing your entire karma.conf.js file. At any rate, you should mention the testing framework you want to use in the configuration. You need a attribute saying
frameworks: ["jasmine"]
The following is an example of an entire configuration. This works perfectly.
module.exports = function (config) {
config.set({
basepath: '.',
frameworks: ["jasmine"],
//list of file patterns to load in the browser
files: [
'web/public/lib/jquery/jquery-1.9.1.js',
'web/public/lib/angular/angular.min.js',
'web/public/lib/async/async.js',
'test/client/lib/angular/angular-mocks.js',
'web/public/lib/angular-ui/*.js',
'web/public/js/**/*.js',
'test/client/public/js/**/*.js',
'test/client/public/js/**/*.coffee'
],
preprocessors: {
'web/public/js/**/*.js': ['coverage'],
'**/*.coffee': ['coffee']
},
// use dots reporter, as travis terminal does not support escaping sequences
// possible values: 'dots' || 'progress'
reporters: ['progress', 'coverage'],
coverageReporter: {
type: 'lcov',
dir: 'coverage/'
},
// these are default values, just to show available options
// web server port
port: 8089,
// cli runner port
runnerPort: 9109,
//urlRoot = '/__test/';
// 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: config.LOG_INFO,
// enable / disable watching file and executing tests whenever any file changes
autoWatch: false,
// polling interval in ms (ignored on OS that support inotify)
autoWatchInterval: 0,
// Start these browsers, currently available:
// - Chrome
// - ChromeCanary
// - Firefox
// - Opera
// - Safari
// - PhantomJS
browsers: ['PhantomJS'],
// Continuous Integration mode
// if true, it capture browsers, run tests and exit
singleRun: true
});
};