112 lines
3 KiB
Markdown
Executable file
112 lines
3 KiB
Markdown
Executable file
# karma-jasmine
|
|
|
|
[](https://www.npmjs.com/package/karma-jasmine)
|
|
[](https://www.npmjs.com/package/karma-jasmine)
|
|
[](https://github.com/karma-runner/karma-jasmine/actions/workflows/release.yml?query=branch%3Amaster)
|
|
[](https://github.com/karma-runner/karma-jasmine)
|
|
[](https://github.com/semantic-release/semantic-release)
|
|
|
|
> Adapter for the [Jasmine](https://jasmine.github.io/) testing framework.
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
npm install karma-jasmine --save-dev
|
|
```
|
|
|
|
## Configuration
|
|
|
|
```js
|
|
// 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
|
|
|
|
```bash
|
|
$ 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`:
|
|
|
|
```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
|
|
|
|
```js
|
|
module.exports = function(config) {
|
|
config.set({
|
|
client: {
|
|
jasmine: {
|
|
random: true,
|
|
seed: '4321',
|
|
oneFailurePerSpec: true,
|
|
failFast: true,
|
|
timeoutInterval: 1000
|
|
}
|
|
}
|
|
})
|
|
}
|
|
```
|
|
|
|
## Debug by URL
|
|
|
|
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.
|
|
|
|
## Sharding
|
|
|
|
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.
|
|
|
|
## Custom spec filter
|
|
|
|
Providing a [custom spec filter](https://jasmine.github.io/api/edge/Configuration#specFilter) is also supported.
|
|
|
|
Example:
|
|
|
|
```js
|
|
// 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](https://karma-runner.github.io/).
|