Test runner: Karma
Remember we said back in the introduction that we could execute Jasmine without the need of a browser window? To do so, we are going to use PhantomJS, a scriptable headless WebKit browser (the same rendering engine that powers the Safari browser) and Karma, a test runner.
The setup is very simple; using NPM, we once again install some dependencies:
npm install –save-dev karma karma-jasmine karma-webpack karma-phantomjs-launcher es5-shim
The only strange dependency here is the es5-shim
, which is used to give PhantomJS support for some ES5 features that it still is missing, and React requires.
The next step is creating a configuration file, named karma.conf.js
, for Karma at the project's' root folder:
module.exports = function(config) { config.set({ basePath: '.', frameworks: ['jasmine'], browsers: ['PhantomJS'], files: [ // shim to workaroud PhantomJS 1.x lack of 'bind' support // see: https://github.com/ariya/phantomjs/issues/10522 ...