Generates an HTML report you can open in a browser to see coverage details.
PyTest
pytest --cov=myapp --cov-report=html tests/
Sample Program
This example has a simple module with two functions: add and subtract. The test only checks add. Running pytest with coverage will show subtract is not tested.
PyTest
def add(a, b):
return a + b
def subtract(a, b):
return a - b
# test_sample.pyimport pytest
from sample import add
def test_add():
assert add(2, 3) == 5
OutputSuccess
Important Notes
Install pytest-cov with pip install pytest-cov before using it.
Use --cov-report=term-missing to see exactly which lines are not covered.
HTML reports help visualize coverage in a friendly way.
Summary
pytest-cov shows how much of your code is tested.
Run tests with pytest --cov=your_package to get coverage info.
Use reports to find untested code and improve your tests.
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
Step 1: Understand pytest-cov functionality
pytest-cov is a plugin that measures code coverage during test runs.
Step 2: Identify the main goal of coverage tools
Coverage tools show which parts of code are tested and which are not.
Final Answer:
To measure how much of your code is covered by tests -> Option D
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
Step 1: Recall correct pytest-cov syntax
The correct option to enable coverage is --cov=package_name.
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.
Final Answer:
pytest --cov=myapp -> Option B
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
Step 1: Understand coverage target
The --cov=myapp option measures coverage for the myapp package, not tests.
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.
Final Answer:
A report showing coverage percentage for myapp package -> Option A
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
Step 1: Check plugin installation
pytest-cov must be installed to enable coverage reporting.
Step 2: Understand symptoms
If no coverage report appears, the plugin is likely missing or not activated.
Final Answer:
You forgot to install pytest-cov plugin -> Option A
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
Step 1: Recall pytest-cov report syntax
The option --cov-report=html generates an HTML coverage report.
Step 2: Match correct command format
pytest --cov=app --cov-report=html correctly uses --cov=app and --cov-report=html together.
Final Answer:
pytest --cov=app --cov-report=html -> Option C
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 unknownstrongwhile earning +1 Grip toward your certificate.