Skip to content

laurentb/xunitparser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

===========
xunitparser
===========

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``.

__ http://docs.python.org/library/unittest.html


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 in the form of git patches, to laurent@bachelier.name.