Bird
Raised Fist0
PyTesttesting~20 mins

pytest-cov for coverage - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
pytest-cov Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Understanding pytest-cov output summary
You run pytest with pytest-cov on a project with 3 Python files. The coverage report shows 85% coverage overall. What does this mean?
A85% of all lines in the 3 files were executed during tests
B85% of the tests passed successfully
C85% of the functions in the project have tests
D85% of the test files were run by pytest
Attempts:
2 left
💡 Hint
Coverage measures how much code was run by tests, not test pass rate.
❓ assertion
intermediate
2:00remaining
Correct assertion to check coverage threshold
You want your pytest-cov to fail tests if coverage is below 90%. Which assertion in your pytest test is correct?
Aassert coverage_percent > 90
Bassert coverage_percent >= 90
Cassert coverage_percent == 90
Dassert coverage_percent <= 90
Attempts:
2 left
💡 Hint
You want to allow 90% or more coverage, not just exactly 90%.
🔧 Debug
advanced
2:00remaining
Why does pytest-cov report 0% coverage?
You run pytest --cov=myapp tests/ but the coverage report shows 0% coverage. What is the most likely cause?
AThe tests folder is empty
Bpytest-cov is not installed correctly
CThe <code>myapp</code> package is not imported or used in tests
DThe coverage report file is corrupted
Attempts:
2 left
💡 Hint
Coverage measures executed code. If code is never run, coverage is zero.
❓ framework
advanced
2:00remaining
Configuring pytest-cov to generate HTML report
Which pytest command correctly runs tests with coverage and generates an HTML coverage report in the htmlcov folder?
Apytest --cov=myapp --cov-report=html
Bpytest --cov=myapp --html=htmlcov
Cpytest --coverage=myapp --report=htmlcov
Dpytest --cov-report=html --cov=myapp --output=htmlcov
Attempts:
2 left
💡 Hint
The option for HTML report is --cov-report=html.
🧠 Conceptual
expert
2:00remaining
Interpreting branch coverage in pytest-cov
pytest-cov shows 75% branch coverage but 90% line coverage. What does this difference mean?
ABranch coverage counts test cases, line coverage counts lines
BOnly 75% of lines were executed, but 90% of branches were tested
CBranch coverage is always lower than line coverage by definition
DSome decision points (if/else) were not fully tested, even though most lines ran
Attempts:
2 left
💡 Hint
Branch coverage checks if all possible paths in decisions ran.

Practice

(1/5)
1. What is the main purpose of using pytest-cov in your testing workflow?
easy
A. To generate test data automatically
B. To speed up test execution time
C. To automatically fix failing tests
D. To measure how much of your code is covered by tests

Solution

  1. Step 1: Understand pytest-cov functionality

    pytest-cov is a plugin that measures code coverage during test runs.
  2. Step 2: Identify the main goal of coverage tools

    Coverage tools show which parts of code are tested and which are not.
  3. Final Answer:

    To measure how much of your code is covered by tests -> Option D
  4. Quick Check:

    pytest-cov = code coverage measurement [OK]
Hint: Coverage means how much code tests run over [OK]
Common Mistakes:
  • Confusing coverage with test speed
  • Thinking pytest-cov fixes tests automatically
  • Assuming pytest-cov generates test data
2. Which command correctly runs pytest with coverage for a package named myapp?
easy
A. pytest -cov myapp
B. pytest --cov=myapp
C. pytest --coverage myapp
D. pytest --cov tests/

Solution

  1. Step 1: Recall correct pytest-cov syntax

    The correct option to enable coverage is --cov=package_name.
  2. Step 2: Compare options

    pytest --cov=myapp uses --cov=myapp, which is the correct syntax. pytest --cov tests/ would incorrectly target the tests directory instead of the myapp package.
  3. Final Answer:

    pytest --cov=myapp -> Option B
  4. Quick Check:

    Use --cov=package [OK]
Hint: Use equal sign with --cov like --cov=package [OK]
Common Mistakes:
  • Targeting tests directory instead of the package
  • Using -cov instead of --cov
  • Using --coverage instead of --cov
3. Given this command run:
pytest --cov=myapp tests/test_module.py
What output will you expect related to coverage?
medium
A. A report showing coverage percentage for myapp package
B. A list of all tests run without coverage info
C. An error saying coverage option is invalid
D. Coverage report for tests directory only

Solution

  1. Step 1: Understand coverage target

    The --cov=myapp option measures coverage for the myapp package, not tests.
  2. Step 2: Predict output

    Running tests in tests/test_module.py with coverage enabled will show coverage report for myapp code exercised by those tests.
  3. Final Answer:

    A report showing coverage percentage for myapp package -> Option A
  4. Quick Check:

    --cov=package shows coverage for that package [OK]
Hint: Coverage reports show tested code, not test files [OK]
Common Mistakes:
  • Expecting coverage for test files instead of source code
  • Thinking coverage option causes errors
  • Confusing coverage report with test list output
4. You ran pytest --cov=myapp but no coverage report appeared. What is the most likely cause?
medium
A. You forgot to install pytest-cov plugin
B. You ran pytest without any test files
C. Your code has no functions to cover
D. You used wrong package name in --cov option

Solution

  1. Step 1: Check plugin installation

    pytest-cov must be installed to enable coverage reporting.
  2. Step 2: Understand symptoms

    If no coverage report appears, the plugin is likely missing or not activated.
  3. Final Answer:

    You forgot to install pytest-cov plugin -> Option A
  4. Quick Check:

    pytest-cov missing = no coverage report [OK]
Hint: Install pytest-cov to get coverage reports [OK]
Common Mistakes:
  • Assuming coverage works without plugin installed
  • Thinking coverage depends on code content
  • Ignoring plugin installation errors
5. You want to generate an HTML coverage report for your package app using pytest-cov. Which command should you run?
hard
A. pytest --coverage=app --report=html
B. pytest --cov=app --html=coverage
C. pytest --cov=app --cov-report=html
D. pytest --cov app --html-report

Solution

  1. Step 1: Recall pytest-cov report syntax

    The option --cov-report=html generates an HTML coverage report.
  2. Step 2: Match correct command format

    pytest --cov=app --cov-report=html correctly uses --cov=app and --cov-report=html together.
  3. Final Answer:

    pytest --cov=app --cov-report=html -> Option C
  4. Quick Check:

    Use --cov-report=html for HTML coverage [OK]
Hint: Use --cov-report=html to get HTML coverage output [OK]
Common Mistakes:
  • Using --html instead of --cov-report=html
  • Omitting equal signs in options
  • Confusing coverage options with test report options
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