How do I setup Karma to run my backend unit tests (written with Mocha)? If I add my backend test script to the files = []
, it fails stating that require
It seems like it cannot be done (thanks @dankohn). Here is my solution using Grunt:
Karma: update your karma.conf.js file
autoWatch = false;
singleRun = true;
browsers = ['PhantomJS'];
(to have inline results)Grunt:
npm install grunt-contrib-watch grunt-simple-mocha grunt-karma
Gruntfile.js:
module.exports = function (grunt) {
grunt.loadNpmTasks('grunt-simple-mocha');
grunt.loadNpmTasks('grunt-karma');
grunt.initConfig({
simplemocha: {
backend: {
src: 'test/server-tests.js'
}
},
karma: {
unit: {
configFile: 'karma.conf.js'
}
}
});
// Default task.
grunt.registerTask('default', ['simplemocha', 'karma']);
};
Grunt (optional): configure grunt-watch to run after changing spec files or files to be tested.
run all using grunt
command.
You don't. Karma is only for testing browser-based code. If you have a project with mocha tests on the backend and karma/mocha on the front end, try editing your package.json under scripts to set test to: mocha -R spec && karma run karma.con
Then, if npm test
returns true, you'll know it's safe to commit or deploy.