How to test nodejs backend code with Karma (testacular)
Solution 1:
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.
Solution 2:
It seems like it cannot be done (thanks @dankohn). Here is my solution using Grunt:
-
Karma: update your karma.conf.js file
- set
autoWatch = false;
- set
singleRun = true;
- set
browsers = ['PhantomJS'];
(to have inline results)
- set
-
Grunt:
npm install grunt-contrib-watch grunt-simple-mocha grunt-karma
- configure the two grunt tasks (see grunt file below)
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.