See the Karma documentation for more info.
Karma runs the tests in the browser, but reports them in the CLI. This greatly improves your workflow by giving you constant, accurate feedback on the status of your tests.
PhantomJS is a great option too, but it has the one drawback that it won't expose browser inconsistencies.
I needed Karma configuration that plays nicely with RequireJS, that I could spin up automatically after running another RequireJS-based generator. This is designed to address that problem.
Install it globally
npm install -g generator-karma-require.
yo karma will generate a config file for your project:
karma.conf.js. It will then install the npm dependencies.
By default, running
yo karma will generate a pretty boring (and almost useless) config file. The real power is using the options to specify almost every part of the config file.
Note that you'll need to update your
Gruntfile.js if you don't specify the
There are a lot of options going on here. None of them are required and most are probably only useful when used with other generators calling this one.
Options are specified after
yo karma. Example:
yo karma --skip-install --frameworks=jasmine --app-files='app/**/*.js,public/**/*.js'
The full list:
--skip-installType: Boolean, Default: false
Skips the automatic execution of
npm after scaffolding has finished.
--coffeeType: Boolean, Default: false
--frameworksType: String, Default: 'jasmine'
Specifies which testing frameworks to use (CSV list). Example
--browsersType: String, Default: 'PhantomJS'
What browsers to test in (CSV list).
--app-filesType: String, Default: ''
List of application files (CSV list). There are purely the files you edit that make up your test.
--test-filesType: String, Default: ''
List of test files (CSV list), including spec and mock files.
--files-commentsType: String, Default: ''
List of comments to add to files properties. It can be used to support bower dependencies wiring using wiredep.
--exclude-filesType: String, Default: ''
List of files to exclude (CSV list). Files you don't want tested.
--pluginsType: String, Default: ''
Specify Karma plugins (npm modules). Use the full name like
--bower-componentsType: String, Default: ''
Optional components to use for testing (CSV list of components).
--bower-components-pathType: String, Default: 'bower_components'
Directory where Bower components are installed, if not in the default location.
--travisType: Boolean, Default: false
Enable Travis CI config generation by adding a .travis.yaml file.
--gruntfile-pathType: String, Default: ''
Path to a Gruntfile to edit. This is relative to your generators root directory. In other words, relative to
--base-pathType: String, Default: ''
Will be used to resolve files and exclude in the
--web-portType: Number, Default: 8080
Web server port to run Karma from.
--template-pathType: String, Default: '../templates'
If you would like to specify a different template to use, give the path to that folder.
--config-fileType: String, Default: ''
The config file name to write to. Useful if you want a different name like
--config-pathType: String, Default: './test'
Path where the config files should be written to. This is where the
karma.conf.js file will be placed.
Karma can be configured by editing
karma.conf.js. See the documentation page on the config file for an exhaustive list of options.
See the contributing docs