aboutsummaryrefslogtreecommitdiffstats
path: root/README
blob: ee0507039833c051811f8bc56d3dc282337d47f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
===========
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.