🏡 index : quine-global/webdriverio.git

---
id: coverage
title: Coverage
---

WebdriverIO's browser runner supports code coverage reporting using [`istanbul`](https://istanbul.js.org/). The testrunner will automatically instrument your code and capture code coverage for you.

## Setup

In order to enable code coverage reporting, enable it through the WebdriverIO browser runner configuration, e.g.:

```js title=wdio.conf.js
export const config = {
    // ...
    runner: ['browser', {
        preset: process.env.WDIO_PRESET,
        coverage: {
            enabled: true
        }
    }],
    // ...
}
```

Checkout all [coverage options](/docs/runner#coverage-options), to learn how to properly configure it.

## Ignoring Code

There may be some sections of your codebase that you wish to purposefully exclude from coverage tracking, to do so you can use the following parsing hints:

- `/* istanbul ignore if */`: ignore the next if statement.
- `/* istanbul ignore else */`: ignore the else portion of an if statement.
- `/* istanbul ignore next */`: ignore the next thing in the source-code ( functions, if statements, classes, you name it).
- `/* istanbul ignore file */`: ignore an entire source-file (this should be placed at the top of the file).

:::info

It is recommended to exclude your test files from the coverage reporting as it could cause errors, e.g. when calling `execute` or `executeAsync` commands. If you like to keep them in your report, ensure your exclude instrumenting them via:

```ts
await browser.execute(/* istanbul ignore next */() => {
    // ...
})
```

:::