Bird
Raised Fist0
PyTesttesting~20 mins

pytest-html for HTML reports - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
pytest-html Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this pytest-html report generation command?
You run the following command to generate an HTML report after your pytest tests:
pytest --html=report.html --self-contained-html

What will be the result?
ANo report file is created because --self-contained-html is not a valid option.
BAn HTML file named report.html is created but requires external CSS and JS files to display properly.
CAn HTML file named report.html is created with embedded CSS and JavaScript for a standalone report.
DThe command runs tests but outputs results only in the console, no HTML file is generated.
Attempts:
2 left
💡 Hint
Think about what --self-contained-html means for the report file.
❓ assertion
intermediate
2:00remaining
Which assertion correctly verifies the presence of the HTML report file after pytest run?
After running pytest with pytest-html, you want to check in your test script that the report file was created.
Which assertion is correct?
PyTest
import os

def test_report_exists():
    # Assume pytest run already happened
    # Which assertion below is correct?
    pass
Aassert os.path.exists('report.html') == False
Bassert os.path.isfile('report.html')
Cassert os.path.isdir('report.html')
Dassert 'report.html' in os.listdir() == False
Attempts:
2 left
💡 Hint
Check if the file exists and is a file, not a directory.
🔧 Debug
advanced
2:00remaining
Why does the pytest-html report not include screenshots on failure?
You configured pytest-html to generate reports and added code to capture screenshots on test failure.
However, the screenshots do not appear in the HTML report.
What is the most likely reason?
AThe screenshots were saved but not attached to the pytest-html report using the extra argument.
Bpytest-html does not support embedding images in reports.
CScreenshots must be saved as .txt files to appear in the report.
DThe report file was generated before the screenshots were taken.
Attempts:
2 left
💡 Hint
Think about how pytest-html expects extra content to be added.
❓ framework
advanced
2:00remaining
How to customize the pytest-html report title?
You want to change the default title of the pytest-html report to "My Test Report".
Which method correctly achieves this?
AUse pytest --html=report.html and add a pytest_html_report_title hook in conftest.py to set the title.
BAdd a pytest hook in conftest.py to set config._metadata['Title'] = 'My Test Report'
CRename the generated report.html file to My Test Report.html after pytest finishes.
DRun pytest with --html=report.html --self-contained-html --title="My Test Report"
Attempts:
2 left
💡 Hint
Look for a pytest hook specifically for report title customization.
🧠 Conceptual
expert
2:00remaining
What is the main advantage of using --self-contained-html with pytest-html reports?
Consider the following options about the --self-contained-html flag when generating pytest-html reports.
Which statement best describes its main advantage?
AIt enables live updating of the report while tests are running.
BIt compresses the report file to reduce disk space usage significantly.
CIt automatically uploads the report to a remote server for sharing.
DIt embeds all CSS and JavaScript inside the HTML file, making the report portable without external dependencies.
Attempts:
2 left
💡 Hint
Think about what 'self-contained' means for a file.

Practice

(1/5)
1. What is the main purpose of using pytest-html in testing?
easy
A. To run tests faster than usual
B. To convert Python code into HTML
C. To write tests in HTML format
D. To generate easy-to-read HTML reports of test results

Solution

  1. Step 1: Understand pytest-html functionality

    pytest-html is a plugin that creates HTML reports summarizing test results.
  2. Step 2: Identify the main use

    The main use is to generate readable reports, not to speed up tests or convert code.
  3. Final Answer:

    To generate easy-to-read HTML reports of test results -> Option D
  4. Quick Check:

    pytest-html = HTML reports [OK]
Hint: Remember: pytest-html = HTML report generator [OK]
Common Mistakes:
  • Thinking pytest-html speeds up tests
  • Confusing report generation with test execution
  • Assuming tests are written in HTML
2. Which command correctly generates an HTML report named report.html using pytest?
easy
A. pytest --report=report.html
B. pytest -html report.html
C. pytest --html=report.html
D. pytest -r html=report.html

Solution

  1. Step 1: Recall pytest-html command syntax

    The correct syntax to generate an HTML report is pytest --html=filename.html.
  2. Step 2: Match the options

    Only pytest --html=report.html matches the correct syntax exactly.
  3. Final Answer:

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

    Use --html=filename.html for reports [OK]
Hint: Use double dash and equals for HTML report file [OK]
Common Mistakes:
  • Using single dash instead of double dash
  • Using incorrect option names like --report
  • Missing equals sign between option and filename
3. Given this pytest command: pytest --html=results.html, what will happen after the tests finish?
medium
A. Tests will run and output will be printed only in the console
B. An HTML file named results.html will be created with test results
C. Tests will run but no report will be generated
D. An error will occur because the command is invalid

Solution

  1. Step 1: Understand the command effect

    The command pytest --html=results.html tells pytest to run tests and save results in an HTML file named results.html.
  2. Step 2: Identify the expected output

    After tests finish, the HTML report file is created for easy viewing.
  3. Final Answer:

    An HTML file named results.html will be created with test results -> Option B
  4. Quick Check:

    --html=filename creates HTML report file [OK]
Hint: --html=filename always creates HTML report file [OK]
Common Mistakes:
  • Thinking no report is generated
  • Expecting output only in console
  • Assuming command syntax is wrong
4. You ran pytest --html=report.html but no HTML report was created. What is the most likely cause?
medium
A. pytest-html plugin is not installed
B. The command syntax is incorrect
C. Tests did not run due to syntax errors
D. HTML reports are disabled by default

Solution

  1. Step 1: Check plugin requirement

    pytest-html must be installed for --html option to work.
  2. Step 2: Analyze other options

    The command syntax is correct, tests can run without errors, and reports are not disabled by default.
  3. Final Answer:

    pytest-html plugin is not installed -> Option A
  4. Quick Check:

    Missing plugin causes no report [OK]
Hint: Install pytest-html plugin to enable reports [OK]
Common Mistakes:
  • Assuming command syntax is wrong
  • Thinking reports are off by default
  • Ignoring plugin installation requirement
5. You want to generate an HTML report with pytest that includes extra environment info like Python version and OS. Which approach is best?
hard
A. Use pytest --html=report.html --self-contained-html and add environment info via pytest hooks
B. Run pytest --html=report.html only; environment info is added automatically
C. Manually edit the HTML report after generation to add environment info
D. Use pytest --html=report.html --env-info option

Solution

  1. Step 1: Understand pytest-html capabilities

    pytest-html can include environment info if you add it via hooks in your test setup.
  2. Step 2: Evaluate options

    Use pytest --html=report.html --self-contained-html and add environment info via pytest hooks uses the correct command and mentions adding info via hooks, which is the recommended way. Run pytest --html=report.html only; environment info is added automatically is incorrect because environment info is not automatic. Manually edit the HTML report after generation to add environment info is manual and error-prone. Use pytest --html=report.html --env-info option is invalid; no such option exists.
  3. Final Answer:

    Use pytest --html=report.html --self-contained-html and add environment info via pytest hooks -> Option A
  4. Quick Check:

    Add env info via hooks + --html [OK]
Hint: Add environment info via hooks, not command options [OK]
Common Mistakes:
  • Expecting environment info added automatically
  • Trying to edit HTML manually
  • Using non-existent command 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