PyJUnitXML, a pyunit extension to output JUnit compatible XML.

## Project description

A Python unittest TestResult that outputs JUnit compatible XML.

## Usage

To use PyJUnitXML you need to specify it as your TestResult when running your tests using pyunit. One way of doing this is to invoke the test method directly on your test suite:

>>> import junitxml
>>> result = junitxml.JUnitXmlResult(sys.stdout)
>>> result.startTestRun()
>>> suite.run(result)
>>> result.stopTestRun()

The startTestRun and stopTestRun methods are new in python 2.7 and 3.1. If you are using older versions of python, and do not invoke the test result directly, you may find that no output occurs at all. This is likely because the stopTestRun method is not being invoked, and you will need to arrange for it to be invoked.

There is a command line runner you can use:

$python -m junitxml.main discover or$ junitxml discover

If the package scripts have been installed.

## Troubleshooting

My test runs, but nothing is output? Check that result.stopTestRun is being called. Due to the XML file format requiring a header containing the test counts, nothing is output until the test run has completed, and that is signalled by the stopTestRun method being called.

## Running PyJUnitXML’s test suite

The function junitxml.test_suite defines the junitxml test suite, you can use any runner you like. I personally use:

$python -m subunit.run junitxml.test_suite | subunit2gtk If you have testrepository you can simply run testr:$ testr run

Enjoy, Rob Collins