Read JUnit/XUnit XML files and map them to Python objects
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.
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.
- 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
Contributions can be sent in the form of git patches, to firstname.lastname@example.org.