Adapter for the Jasmine testing framework.
Jasmine 1.3 (docs)
The easiest way is to run
$ npm install karma-jasmine@0.1.0 --save-dev
Jasmine 2.0 (docs)
The easiest way is run
$ npm install karma-jasmine --save-dev
Note:
Since karma-jasmine 0.3.0
the jasmine library is no longer bundled with karma-jasmine
and you have to install it on your own. You can simply do it by:
$ npm install jasmine-core --save-dev
// karma.conf.js
module.exports = function(config) {
config.set({
frameworks: ['jasmine'],
files: [
'*.js'
]
})
}
If you want to run only some tests matching a given pattern you can do this in the following way
$ karma start &
$ karma run -- --grep=<pattern>
or
module.exports = function(config) {
config.set({
...
client: {
args: ['--grep', '<pattern>'],
...
}
})
}
If you want async tests' done execution to be executed on the next JavaScript message queue, you can do this by setting the jasmineDoneToMessageQueue
config value.
A scenario where this is useful is when testing angular promises. If you have a promise that calls done
in the $digest
it will end the test prior to finishing the $digest
loop. If there is a downstream exception, within a $watch
for example, the test will not fail which can be confusing. Since $digest
is blocking, pushing the call to done
to the message queue will ensure it occurs after the $digest
loop completes.
// karma.conf.js
module.exports = function(config) {
config.set({
frameworks: ['jasmine'],
files: [
'*.js'
],
jasmineDoneToMessageQueue: true
})
}
For more information on Karma see the homepage.