Adapter for the Jasmine testing framework.
npm install karma-jasmine --save-dev
// karma.conf.js
module.exports = function(config) {
config.set({
frameworks: ['jasmine'],
files: [
'*.js'
]
})
}
If you want to run only some tests whose name match a given pattern you can do this in the following way
$ karma start &
$ karma run -- --grep=<pattern>
where pattern is either a string (e.g --grep=#slow
runs tests containing "#slow") or a Regex (e.g --grep=/^(?!.*#slow).*$/
runs tests not containing "#slow").
You can also pass it to karma.config.js
:
module.exports = function(config) {
config.set({
// ...
client: {
args: ['--grep', '<pattern>'],
// ...
}
})
}
If you want to pass configuration options directly to jasmine you can do this in the following way
module.exports = function(config) {
config.set({
client: {
jasmine: {
random: true,
seed: '4321',
oneFailurePerSpec: true,
failFast: true,
timeoutInterval: 1000
}
}
})
}
Failing tests print a debug URL with ?spec=
. Use it with --no_single_run
and paste it into your browser to focus on a single failing test.
By setting config.client.shardIndex
and config.client.totalShards
, you can
run a subset of the full set of specs. Complete sharding support needs to be
done in the process that calls karma, and would need to support test result
integration across shards.
Providing a custom spec filter is also supported.
Example:
// Users are able to set a custom specFilter themselves
jasmine.getEnv().configure({
specFilter: function (spec) {
return spec.getFullName() === 'spec that succeeds'
}
})
describe('spec', () => {
it('that fails', () => {
fail('This spec should not run!')
})
it('that succeeds', () => {
expect(1).toBe(1)
})
})
For more information on Karma see the homepage.