HTML report generation helps you see test results in a clear, colorful webpage. It makes understanding test outcomes easy and quick.
HTML report generation in Selenium Python
from selenium import webdriver from selenium.webdriver.common.by import By import unittest import HtmlTestRunner class TestExample(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() def test_google_title(self): self.driver.get('https://www.google.com') self.assertIn('Google', self.driver.title) def tearDown(self): self.driver.quit() if __name__ == '__main__': unittest.main(testRunner=HtmlTestRunner.HTMLTestRunner(output='reports'))
Use HtmlTestRunner to create HTML reports easily with unittest.
The output folder stores the generated HTML files.
my_reports.unittest.main(testRunner=HtmlTestRunner.HTMLTestRunner(output='my_reports'))TestReport.html.unittest.main(testRunner=HtmlTestRunner.HTMLTestRunner(output='reports', report_name='TestReport'))
unittest.main(testRunner=HtmlTestRunner.HTMLTestRunner(output='reports', combine_reports=True))
This test opens Google, checks the page title contains 'Google', then closes the browser. The test results are saved as an HTML report in the 'reports' folder.
from selenium import webdriver from selenium.webdriver.common.by import By import unittest import HtmlTestRunner class GoogleTest(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() def test_title(self): self.driver.get('https://www.google.com') self.assertIn('Google', self.driver.title) def tearDown(self): self.driver.quit() if __name__ == '__main__': unittest.main(testRunner=HtmlTestRunner.HTMLTestRunner(output='reports'))
Make sure to install HtmlTestRunner with pip install html-testRunner before running tests.
Keep your test names clear; they appear in the report.
Open the generated HTML file in a browser to view the colorful test results.
HTML reports make test results easy to read and share.
Use HtmlTestRunner with unittest for simple HTML report generation.
Reports save in a folder you choose and show pass/fail details clearly.
Practice
Solution
Step 1: Understand the role of HTML reports
HTML reports present test results in a clear, visual format that anyone can read.Step 2: Compare with other options
Speeding tests, writing tests faster, or avoiding assertions are unrelated to HTML reports.Final Answer:
To make test results easy to read and share -> Option CQuick Check:
HTML reports = clear, shareable results [OK]
- Thinking HTML reports speed up tests
- Confusing report generation with test writing
- Believing reports remove need for assertions
Solution
Step 1: Identify the package for unittest HTML reports
HtmlTestRunner is designed to work with unittest for HTML report generation.Step 2: Eliminate other options
pytest-html is for pytest, selenium-html and unittest-html are not standard packages.Final Answer:
HtmlTestRunner -> Option DQuick Check:
unittest + HtmlTestRunner = HTML reports [OK]
- Choosing pytest-html for unittest tests
- Assuming selenium-html is a real package
- Confusing unittest-html as official
import unittest
import HtmlTestRunner
class TestExample(unittest.TestCase):
def test_pass(self):
self.assertTrue(True)
if __name__ == '__main__':
unittest.main(testRunner=HtmlTestRunner.HTMLTestRunner(output='reports'))Solution
Step 1: Check the output parameter in HTMLTestRunner
The output='reports' argument tells HtmlTestRunner to save reports in the 'reports' folder.Step 2: Understand default behavior
Without output specified, reports save in current directory, but here 'reports' is explicit.Final Answer:
reports folder -> Option BQuick Check:
output='reports' means save in reports folder [OK]
- Assuming reports save in current directory by default
- Thinking HtmlTestRunner creates its own folder
- Believing reports print only to console
import unittest
import HtmlTestRunner
class TestExample(unittest.TestCase):
def test_fail(self):
self.assertEqual(1, 2)
if __name__ == '__main__':
unittest.main(testRunner=HtmlTestRunner.HTMLTestRunner(output=''))Solution
Step 1: Check the output parameter usage
Setting output='' means no folder is specified, which can cause HtmlTestRunner to fail saving reports properly.Step 2: Verify other parts
assertEqual syntax is correct, HtmlTestRunner is imported, and test class inheritance is correct.Final Answer:
Empty output string causes report not to save -> Option AQuick Check:
output='' disables report folder, causing save issues [OK]
- Thinking assertEqual(1, 2) is syntax error
- Believing test class must inherit HtmlTestRunner
- Ignoring output parameter effect
Solution
Step 1: Identify correct parameter for output folder
HtmlTestRunner uses 'output' parameter to specify the folder for saving reports.Step 2: Check other parameter names
'report', 'folder', and 'path' are not valid parameters for HtmlTestRunner's HTMLTestRunner class.Final Answer:
unittest.main(testRunner=HtmlTestRunner.HTMLTestRunner(output='test_reports')) -> Option AQuick Check:
Use output='foldername' to save reports correctly [OK]
- Using wrong parameter names like report or folder
- Not specifying output folder at all
- Confusing HtmlTestRunner options with other packages
Ready to prove it?
Pass the test and this pattern moves unknown
