17. Unittest Html And Xml Report Generation - naveens33/selenium_python GitHub Wiki

Steps to generate Html and Xml report in Unittest

1. Create Python Test Case Class And Run Test Method

  • Define test functions in the class
  • Call unittest.main method to run all the test methods.

2. Generate Html Test Reports

  • Install html-testRunner module
  • Import HtmlTestRunner and create html test runner object in unittest.main method
import HtmlTestRunner
unittest.main(testRunner=HtmlTestRunner.HTMLTestRunner('html_report_dir'))

3. Generate Xml Test Report

  • Install xmlrunner module
  • Import xmlrunner and create xml test runner object in unittest.main method
import xmlrunner
unittest.main(testRunner=xmlrunner.XMLTestRunner('xml_report_dir'))

Q&A:

How to add Html Report for all test in test suite

test_suite = unittest.TestSuite()
test = unittest.makeSuite(test_case_class)
test_suite.addTest(test)
test_runner = HtmlTestRunner.HTMLTestRunner(output=html_report_dir)
test_runner.run(test_suite)

How to add Xml Report for all test in test suite

test_suite = unittest.TestSuite()
test = unittest.makeSuite(test_case_class)
test_suite.addTest(test)
test_runner = xmlrunner.XMLTestRunner(output=xml_report_dir)
test_runner.run(test_suite)

How to add Html Report for all test from different modules

test_suite = unittest.TestSuite()
all_test_cases = unittest.defaultTestLoader.discover('.', '*.py')
for test_case in all_test_cases:
    test_suite.addTests(test_case)
test_runner = HtmlTestRunner.HTMLTestRunner(output=html_report_dir)
test_runner.run(test_suite)

How to add Xml Report for all test from different modules

test_suite = unittest.TestSuite()
all_test_cases = unittest.defaultTestLoader.discover('.', '*.py')
for test_case in all_test_cases:
    test_suite.addTests(test_case)
test_runner = xmlrunner.XMLTestRunner(output=xml_report_dir)
test_runner.run(test_suite)

Why HTMLTestRunner not generating report while running with Unittest Configuration ?

Unittest will not execute main part. Just edit configuration to run the script.

(In Pycharm) like From the Run menu > Run > edit configuration > select/add ScriptName.py above Python instead of Unittests in ScriptName.py

Refer: Python3 HTMLTestRunner not generating report - stack overflow