I was facing same issue, when trying to use require('module_name')
(CommonJS style modules) inside a test case and running it using Karma.
The reason was require
function is not available to browser (it is undefined
). To provide it to browser we can browserify the test js files before Karma runs test case in browser using karma-browserify.
Install karma-browserify using npm install karma-browserify --save-dev
Update karma.conf.js
frameworks: ['jasmine', 'browserify'],
preprocessors: {
'app/tests/*.js': [ 'browserify' ]
},
plugins: [..., 'karma-browserify'],
After these changes browserified file is run in browser by Karma, in which require
is defined, and test case runs successfully
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…