Generate JUnit XML Report (–generate-xml, –xml-report)¶
You can generate a combined JUnit-style XML test report from multiple runs using the –generate-xml flag. This is particularly useful for integrating with CI tools and test management systems.
Flags Overview¶
--generate-xmlEnables generation of a combined XML report. Default:FalseAccepted Values:True,False--xml-reportSpecifies the path where the combined XML report should be written. Make sure the directory exists Default:NoneAccepted Values: Any valid file path (e.g.,report_output/final_report.xml)
Usage Example¶
pytest --generate-xml True --xml-report report_output/final_report.xml
This will aggregate the test results from all discovered test cases and output a single JUnit-compatible XML report to report_output/final_report.xml.
Use Cases¶
CI/CD Pipelines Upload the XML report as a test artifact or feed it directly into tools like:
Jenkins (via JUnit plugin)
GitLab CI (
junitreports)CircleCI test summary
Azure DevOps test publishing
Test Management Tools Export and import the XML report into platforms such as:
Testmo
TestRail
PractiTest
Zephyr
These tools can parse the XML structure and associate results with test cases and runs automatically.
Dashboard Integrations Many internal or third-party dashboards can consume XML test reports for test analytics and history tracking.
Report Contents¶
The XML report includes: - Complete test case metadata (name, duration, result status) - Captured stdout, stderr output, print() statements - Loggers and traceback messages - Failure reasons and exception types
Important Notes¶
The –xml-report flag must be provided when –generate-xml is set to True. Otherwise, the plugin will raise an error.
The generated XML follows the widely accepted JUnit report schema and is compatible with most tools that support it.
Useful when combining results from sharded or parallel test runs.