Bird
Raised Fist0
Denoframework~30 mins

Code coverage reporting in Deno - Mini Project: Build & Apply

Choose your learning style10 modes available
Code Coverage Reporting with Deno
📖 Scenario: You are working on a small Deno project and want to check how much of your code is tested. Code coverage helps you see which parts of your code are tested by your tests and which parts are not.In this project, you will set up a simple Deno module, write a test for it, and then generate a code coverage report.
🎯 Goal: Build a Deno project with a simple function, write a test for it, and generate a code coverage report using Deno's built-in tools.
📋 What You'll Learn
Create a Deno module with a function
Write a test file for the function
Run tests with coverage enabled
Generate and view the coverage report
💡 Why This Matters
🌍 Real World
Code coverage is used in real projects to ensure tests cover important parts of the code, helping catch bugs early and improve code quality.
💼 Career
Many software development jobs require knowledge of testing and code coverage tools to maintain reliable and maintainable codebases.
Progress0 / 4 steps
1
Create a Deno module with a function
Create a file named math.ts and write a function called add that takes two numbers a and b and returns their sum.
Deno
Hint

Use export function add(a: number, b: number): number to define the function so it can be tested.

2
Write a test for the add function
Create a file named math_test.ts. Import the add function from ./math.ts. Write a test using Deno's Deno.test that checks if add(2, 3) returns 5.
Deno
Hint

Use Deno.test and assertEquals from Deno's standard library to write the test.

3
Run tests with coverage enabled
Run the tests with coverage enabled by executing deno test --coverage=coverage in the terminal. This will create a coverage data folder named coverage.
Deno
Hint

Use the terminal to run deno test --coverage=coverage to collect coverage data.

4
Generate and view the coverage report
Generate a coverage report in the terminal by running deno coverage coverage --lcov. Then, run deno coverage coverage to see a human-readable summary of the coverage.
Deno
Hint

Use deno coverage coverage --lcov to create a coverage report file and deno coverage coverage to see a summary in the terminal.

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