Skip to main content
On this page

deno coverage

Command-line Usage

deno coverage [OPTIONS] [files]...

Print coverage reports from coverage profiles.

Collect a coverage profile with deno test:

deno test --coverage=cov_profile

Print a report to stdout:

deno coverage cov_profile

Include urls that start with the file schema and exclude files ending with test.ts and test.js, for an url to match it must match the include pattern and not match the exclude pattern:

deno coverage --include="^file:" --exclude="test\.(ts|js)" cov_profile

Write a report using the lcov format:

deno coverage --lcov --output=cov.lcov cov_profile/

Generate html reports from lcov:

genhtml -o html_cov cov.lcov

Options Jump to heading

--detailed Jump to heading

Output coverage report in detailed format in the terminal.

--exclude Jump to heading

Exclude source files from the report.

--html Jump to heading

Output coverage report in HTML format in the given directory.

--ignore Jump to heading

Ignore coverage files.

--include Jump to heading

Include source files in the report.

--lcov Jump to heading

Output coverage report in lcov format.

--output Jump to heading

Exports the coverage report in lcov format to the given file. If no --output arg is specified then the report is written to stdout.

Inclusions and Exclusions Jump to heading

By default coverage includes any of your code that exists on the local file system, and it's imports.

You can customize the inclusions and exclusions by using the --include and --exclude options.

You can expand the coverage to include files that are not on the local file system by using the --include option and customizing the regex pattern.

deno coverage --include="^file:|https:"

The default inclusion pattern should be sufficient for most use cases, but you can customize it to be more specific about which files are included in your coverage report.

Files that contain test.js, test.ts, test.jsx, or test.tsx in their name are excluded by default.

This is equivalent to:

deno coverage --exclude="test\.(js|mjs|ts|jsx|tsx)$"

This default setting prevents your test code from contributing to your coverage report. For a URL to match it must match the include pattern and not match the exclude pattern.

Output Formats Jump to heading

By default we support Deno's own coverage format - but you can also output coverage reports in the lcov format, or in html.

deno coverage --lcov --output=cov.lcov

This lcov file can be used with other tools that support the lcov format.

deno coverage --html

This will output a coverage report as a html file

Examples Jump to heading

Generate a coverage report from the default coverage profile in your workspace

deno test --coverage
deno coverage

Generate a coverage report from a coverage profile with a custom name

deno test --coverage=custom_profile_name
deno coverage custom_profile_name

Only include coverage that matches a specific pattern - in this case, only include tests from main.ts

deno coverage --include="main.ts"

Export test coverage from the default coverage profile to an lcov file

deno test --coverage
deno coverage --lcov --output=cov.lcov