Icard/angular-clarity-master(work.../node_modules/karma-jasmine/README.md

113 lines
3.0 KiB
Markdown

# karma-jasmine
[![npm version](https://img.shields.io/npm/v/karma-jasmine?style=flat-square)](https://www.npmjs.com/package/karma-jasmine)
[![npm downloads](https://img.shields.io/npm/dm/karma-jasmine?style=flat-square)](https://www.npmjs.com/package/karma-jasmine)
[![Release Workflow Status](https://img.shields.io/github/workflow/status/karma-runner/karma-jasmine/Release/master?style=flat-square&logo=github&label=Release)](https://github.com/karma-runner/karma-jasmine/actions/workflows/release.yml?query=branch%3Amaster)
[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen?style=flat-square)](https://github.com/karma-runner/karma-jasmine)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079?style=flat-square)](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/).