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