mirror of
https://github.com/vitest-dev/vitest.git
synced 2025-12-08 18:26:03 +00:00
91 lines
1.7 KiB
Markdown
91 lines
1.7 KiB
Markdown
---
|
|
title: Coverage | Guide
|
|
---
|
|
|
|
# Coverage
|
|
|
|
Vitest supports Native code coverage via [`c8`](https://github.com/bcoe/c8) and instrumented code coverage via [`istanbul`](https://istanbul.js.org/).
|
|
|
|
## Coverage Providers
|
|
|
|
:::tip
|
|
Since Vitest v0.22.0
|
|
:::
|
|
|
|
Both `c8` and `istanbul` support are optional. By default, `c8` will be used.
|
|
|
|
You can select the coverage tool by setting `test.coverage.provider` to either `c8` or `istanbul`:
|
|
|
|
```ts
|
|
// vite.config.ts
|
|
import { defineConfig } from 'vitest/config'
|
|
|
|
export default defineConfig({
|
|
test: {
|
|
coverage: {
|
|
provider: 'istanbul' // or 'c8'
|
|
},
|
|
},
|
|
})
|
|
```
|
|
|
|
When you start the Vitest process, it will prompt you to install the corresponding support package automatically.
|
|
|
|
Or if you prefer to install them manually:
|
|
|
|
```bash
|
|
# For c8
|
|
npm i -D @vitest/coverage-c8
|
|
|
|
# For istanbul
|
|
npm i -D @vitest/coverage-istanbul
|
|
```
|
|
|
|
## Coverage Setup
|
|
|
|
To test with coverage enabled, you can pass the `--coverage` flag in CLI.
|
|
|
|
```json
|
|
{
|
|
"scripts": {
|
|
"test": "vitest",
|
|
"coverage": "vitest run --coverage"
|
|
}
|
|
}
|
|
```
|
|
|
|
To configure it, set `test.coverage` options in your config file:
|
|
|
|
```ts
|
|
// vite.config.ts
|
|
import { defineConfig } from 'vitest/config'
|
|
|
|
export default defineConfig({
|
|
test: {
|
|
coverage: {
|
|
reporter: ['text', 'json', 'html'],
|
|
},
|
|
},
|
|
})
|
|
```
|
|
|
|
## Custom Coverage Provider
|
|
|
|
It's also possible to provide your custom coverage provider by passing an object to the `test.coverage.provider`:
|
|
|
|
```ts
|
|
// vite.config.ts
|
|
import { defineConfig } from 'vitest/config'
|
|
import CustomCoverageProvider from 'my-custom-coverage-provider'
|
|
|
|
export default defineConfig({
|
|
test: {
|
|
coverage: {
|
|
provider: CustomCoverageProvider()
|
|
},
|
|
},
|
|
})
|
|
```
|
|
|
|
Please refer to the type definition for more details.
|