Skip to main content

Read JUnit/XUnit XML files and map them to Python objects

Project description

Description

xunitparser reads a JUnit/XUnit XML file and maps it to Python objects. It tries to use the objects available in the standard unittest module.

Usage

import xunitparser
ts, tr = xunitparser.parse(open('/path/to/unit.xml'))

ts is a TestSuite class, containing TestCase classes. tr is a TestResult class.

You can change the classes used (though they probably would not work unless they inherit from the xunitparser ones) by using your own xunitparser.Parser class and changing the *_CLASS variables.

Some helpful properties are added to the TestCase class:

for tc in ts:
    print('Class %s, method %s' % (tc.classname, tc.methodname))
    if tc.good:
        print('went well...', 'but did not run.' if tc.skip else '')
    else:
        print('went wrong.')

For more, please read the source code - it is very minimal. The classes also inherit from the unittest module so it is actually a good reference of what you can do with xunitparser.

Changes

  • 1.3.4

    • fix python 3 compatibility

    • main project URL change as maintainer changes

  • 1.3.0

    • Multiple results in a single TestCase are seen as one. The previous way was never validated by real-life examples.

    • Handle system-out / system-err at the testsuite level

Development

Contributions can be sent to https://gitlab.com/woob/xunitparser/

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page