问题
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 is undefined.
回答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.
回答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
gruntcommand.
来源:https://stackoverflow.com/questions/16660670/how-to-test-nodejs-backend-code-with-karma-testacular