Bird
Raised Fist0
Denoframework~5 mins

Code coverage reporting in Deno

Choose your learning style10 modes available
Introduction

Code coverage reporting shows which parts of your code are tested. It helps you find untested code to improve your tests.

You want to check if your tests cover all important parts of your program.
Before releasing software, to ensure quality by testing most code.
When adding new features, to verify new code is tested.
To find dead or unused code that tests never run.
To improve confidence in your code by measuring test completeness.
Syntax
Deno
deno test --coverage=coverage_data

deno coverage coverage_data --lcov > coverage.lcov

deno coverage coverage_data --json > coverage.json

Use --coverage=coverage_data with deno test to collect coverage info.

Then use deno coverage to view or export reports in formats like lcov or json.

Examples
Run tests and save coverage info in folder coverage_data.
Deno
deno test --coverage=coverage_data
Show a summary report of coverage in the terminal.
Deno
deno coverage coverage_data
Export coverage report in lcov format for tools like codecov or CI systems.
Deno
deno coverage coverage_data --lcov > coverage.lcov
Export coverage data as JSON for custom processing or tools.
Deno
deno coverage coverage_data --json > coverage.json
Sample Program

This simple test file checks the add function with positive and negative numbers. Running tests with coverage will show that both tests cover the add function.

Deno
import { assertEquals } from "https://deno.land/std@0.203.0/testing/asserts.ts";

function add(a: number, b: number): number {
  return a + b;
}

Deno.test("add positive numbers", () => {
  assertEquals(add(2, 3), 5);
});

Deno.test("add negative numbers", () => {
  assertEquals(add(-1, -1), -2);
});
OutputSuccess
Important Notes

Coverage data is stored in a folder you specify, so keep it clean or add to .gitignore.

Coverage reports help find untested code but do not guarantee code correctness.

Use coverage reports regularly to keep tests effective as code changes.

Summary

Code coverage shows which code your tests run.

Use deno test --coverage to collect coverage data.

Use deno coverage to view or export reports.

Practice

(1/5)
1. What does the deno test --coverage command do?
easy
A. Installs coverage tools for Deno
B. Only runs tests without coverage data
C. Generates a coverage report without running tests
D. Runs tests and collects code coverage data

Solution

  1. Step 1: Understand the purpose of deno test --coverage

    This command runs your test files and collects data on which parts of your code were executed during testing.
  2. Step 2: Differentiate from other commands

    Unlike just running tests, this command also tracks coverage. It does not generate reports directly; that is done by deno coverage.
  3. Final Answer:

    Runs tests and collects code coverage data -> Option D
  4. Quick Check:

    deno test --coverage collects coverage data [OK]
Hint: Remember: test runs + coverage data collection together [OK]
Common Mistakes:
  • Thinking it only runs tests without coverage
  • Confusing coverage data collection with report generation
  • Assuming it installs tools instead of running tests
2. Which of the following is the correct command to view a coverage report in the terminal?
easy
A. deno coverage --reporter=text
B. deno test --view-coverage
C. deno coverage --show
D. deno test --coverage-report

Solution

  1. Step 1: Identify the command to view coverage

    The deno coverage command is used to view or export coverage reports after running tests with coverage.
  2. Step 2: Recognize the correct flag for terminal output

    The flag --reporter=text tells Deno to show the coverage report in the terminal.
  3. Final Answer:

    deno coverage --reporter=text -> Option A
  4. Quick Check:

    Use deno coverage with --reporter=text to view coverage [OK]
Hint: Use deno coverage with --reporter=text to see output [OK]
Common Mistakes:
  • Using deno test flags to view coverage report
  • Assuming --show or --view-coverage are valid flags
  • Confusing test and coverage commands
3. Given the following commands run in order:
deno test --coverage=./cov_data
deno coverage ./cov_data --reporter=lcov

What is the expected output?
medium
A. Tests run but no coverage data is saved
B. A coverage report file in lcov format is generated
C. An error occurs because coverage directory is missing
D. Coverage report is printed directly in the terminal

Solution

  1. Step 1: Run tests with coverage saved to a directory

    The first command runs tests and saves coverage data into the folder ./cov_data.
  2. Step 2: Generate coverage report in lcov format

    The second command reads coverage data from ./cov_data and outputs a report in lcov format to a file (stdout is the report content, but typically redirected to a file).
  3. Final Answer:

    A coverage report file in lcov format is generated -> Option B
  4. Quick Check:

    Coverage data saved + lcov report generated [OK]
Hint: Save coverage data first, then generate report from it [OK]
Common Mistakes:
  • Expecting coverage report without saving data first
  • Thinking lcov generates a file automatically (use redirection)
  • Assuming error if directory exists
4. You ran deno test --coverage but deno coverage shows no data. What is the likely cause?
medium
A. Your test files have syntax errors
B. You forgot to specify a coverage directory when running tests
C. You ran deno coverage before running tests
D. Coverage data is automatically deleted after tests

Solution

  1. Step 1: Understand coverage data flow

    Coverage data is collected when tests run with coverage enabled and saved to a directory or default location.
  2. Step 2: Check command order

    If deno coverage is run before tests, no coverage data exists yet, so it shows no data.
  3. Final Answer:

    You ran deno coverage before running tests -> Option C
  4. Quick Check:

    Run tests first, then coverage report [OK]
Hint: Always run tests with coverage before viewing reports [OK]
Common Mistakes:
  • Assuming coverage directory is mandatory every time
  • Thinking syntax errors cause no coverage data
  • Believing coverage data auto-deletes after tests
5. You want to generate a coverage report in HTML format and open it in your browser. Which sequence of commands achieves this correctly?
hard
A. deno test --coverage=./cov_data && deno coverage ./cov_data --reporter=html && open coverage/index.html
B. deno coverage --reporter=html && deno test --coverage && open ./cov_data/index.html
C. deno test && deno coverage --reporter=html && open ./cov_data/index.html
D. deno test --coverage && deno coverage --reporter=html > report.html && open report.html

Solution

  1. Step 1: Run tests with coverage saved to a directory

    Use deno test --coverage=./cov_data to run tests and save coverage data in ./cov_data.
  2. Step 2: Generate HTML report from saved coverage data

    Run deno coverage ./cov_data --reporter=html to create HTML files inside coverage/ directory.
  3. Step 3: Open the generated HTML report in browser

    Use open coverage/index.html (macOS) or equivalent to view the report.
  4. Final Answer:

    deno test --coverage=./cov_data && deno coverage ./cov_data --reporter=html && open coverage/index.html -> Option A
  5. Quick Check:

    Save coverage, generate HTML, then open file [OK]
Hint: Save coverage, generate HTML report, then open it [OK]
Common Mistakes:
  • Generating report before running tests
  • Not specifying coverage directory consistently
  • Redirecting HTML output to file instead of directory
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard