Karma can not recognize 'require' statement in JSFileSpec.js file. Running karma.conf.js:
(function() { describe("DummyEmitter creation", function(){ return it("creation", function(){ var DummyEmitter = require('Util.DummyEmitter'); var dummy = new DummyEmitter('someName'); return expect(dummy).toBeDefined(); }); }); })();
ReferenceError: require is not defined
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With