Bird
Raised Fist0
PyTesttesting~5 mins

Coverage report formats (terminal, HTML, XML) in PyTest - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is a coverage report in pytest?
A coverage report shows which parts of your code were tested and which were not during test execution.
Click to reveal answer
beginner
Name three common coverage report formats supported by pytest-cov.
Terminal (text output), HTML (interactive web pages), and XML (machine-readable format).
Click to reveal answer
beginner
How do you generate an HTML coverage report using pytest?
Run pytest with the option: --cov-report=html. This creates a folder named 'htmlcov' with the report files.
Click to reveal answer
intermediate
What is the benefit of an XML coverage report?
XML reports can be used by other tools like CI servers to analyze coverage automatically.
Click to reveal answer
beginner
What does the terminal coverage report show?
It shows a summary of coverage percentages and which lines were missed directly in the command line.
Click to reveal answer
Which pytest-cov option generates an HTML coverage report?
A--cov-report=html
B--cov-report=xml
C--cov-report=term
D--cov-html
What folder is created by default when generating an HTML coverage report?
Acoverage_report
Bcoverage_html
Ccov_html
Dhtmlcov
Which coverage report format is best for automated tools and CI servers?
AXML
BHTML
CPDF
DTerminal
What does the terminal coverage report NOT provide?
ASummary of coverage percentages
BList of missed lines
CInteractive clickable links
DCoverage data in text form
Which command shows coverage summary directly in the terminal?
Apytest --cov-report=xml
Bpytest --cov-report=term-missing
Cpytest --cov-report=html
Dpytest --cov-report=term
Explain the differences between terminal, HTML, and XML coverage reports in pytest.
Think about who uses each format and how.
You got /3 concepts.
    Describe how to generate and view an HTML coverage report using pytest.
    Remember the folder name and how to open the report.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of a coverage report in pytest?
      easy
      A. To generate test data automatically
      B. To run tests faster by skipping some tests
      C. To fix bugs in the code automatically
      D. To show which parts of the code were tested and which were not

      Solution

      1. Step 1: Understand coverage report purpose

        Coverage reports show which lines or parts of code were executed during tests.
      2. Step 2: Compare options with coverage purpose

        Only To show which parts of the code were tested and which were not correctly describes this purpose; others describe unrelated actions.
      3. Final Answer:

        To show which parts of the code were tested and which were not -> Option D
      4. Quick Check:

        Coverage report = tested code visibility [OK]
      Hint: Coverage reports show tested vs untested code [OK]
      Common Mistakes:
      • Confusing coverage with test execution speed
      • Thinking coverage generates test data
      • Believing coverage fixes bugs automatically
      2. Which pytest command option generates an HTML coverage report?
      easy
      A. --cov-report=xml
      B. --cov-report=summary
      C. --cov-report=html
      D. --cov-report=term

      Solution

      1. Step 1: Recall pytest coverage report options

        Common options include 'term' for terminal, 'html' for HTML, and 'xml' for XML reports.
      2. Step 2: Match option to HTML report

        Only '--cov-report=html' generates an HTML report.
      3. Final Answer:

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

        HTML report option = --cov-report=html [OK]
      Hint: HTML report uses --cov-report=html option [OK]
      Common Mistakes:
      • Using --cov-report=xml for HTML report
      • Confusing term with html option
      • Using non-existent --cov-report=summary
      3. Given this pytest command:
      pytest --cov=myapp --cov-report=term-missing
      What will the terminal output show?
      medium
      A. An HTML file opened in the browser
      B. A summary of coverage with missing lines shown
      C. An XML file saved to disk
      D. No coverage information displayed

      Solution

      1. Step 1: Understand --cov-report=term-missing

        This option shows coverage summary in terminal and highlights missing lines.
      2. Step 2: Match output to options

        A summary of coverage with missing lines shown matches terminal summary with missing lines; others describe HTML, XML, or no output.
      3. Final Answer:

        A summary of coverage with missing lines shown -> Option B
      4. Quick Check:

        term-missing = terminal summary with missing lines [OK]
      Hint: term-missing shows missing lines in terminal [OK]
      Common Mistakes:
      • Thinking term-missing opens HTML report
      • Expecting XML output from term-missing
      • Assuming no coverage info is shown
      4. You ran pytest --cov=myapp --cov-report=html but no HTML report was generated. What is the most likely cause?
      medium
      A. The HTML report is saved in the current directory as 'htmlcov'
      B. You forgot to install the pytest-cov plugin
      C. You need to add --cov-report=xml to generate HTML
      D. HTML reports are not supported by pytest

      Solution

      1. Step 1: Check where HTML report is saved

        By default, pytest-cov saves HTML reports in 'htmlcov' folder in current directory.
      2. Step 2: Understand common confusion

        Users may think no report generated if they don't check 'htmlcov' folder; plugin installation is needed but question assumes it is installed.
      3. Final Answer:

        The HTML report is saved in the current directory as 'htmlcov' -> Option A
      4. Quick Check:

        HTML report folder = htmlcov [OK]
      Hint: HTML report saved in 'htmlcov' folder by default [OK]
      Common Mistakes:
      • Assuming HTML report appears in terminal
      • Forgetting to look in 'htmlcov' folder
      • Thinking XML option is needed for HTML
      5. You want to share coverage results with a CI tool that requires XML input. Which pytest command correctly generates the XML coverage report file?
      hard
      A. pytest --cov=myapp --cov-report=xml
      B. pytest --cov=myapp --cov-report=html
      C. pytest --cov=myapp --cov-report=term
      D. pytest --cov=myapp --cov-report=term-missing

      Solution

      1. Step 1: Identify XML report option

        The '--cov-report=xml' option generates coverage results in XML format.
      2. Step 2: Match option to CI tool requirement

        CI tools needing XML input require this exact option; others generate HTML or terminal output.
      3. Final Answer:

        pytest --cov=myapp --cov-report=xml -> Option A
      4. Quick Check:

        XML report option = --cov-report=xml [OK]
      Hint: Use --cov-report=xml for CI XML coverage [OK]
      Common Mistakes:
      • Using HTML or terminal options for XML output
      • Not specifying any --cov-report option
      • Confusing term-missing with XML