SubUnit is a streaming protocol for test results. The protocol is human readable and easily generated and parsed. By design all the components of the protocol conceptually fit into the xUnit TestCase->TestResult interaction.
SubUnit comes with command line filters to process a subunit stream and
language bindings for python, C++, C and shell. Bindings are easy to write
for other languages.
A number of useful things can be done easily with subunit:
* Test aggregation: Tests run separately can be combined and then reported/displayed together. For instance, tests from different languages can be shown as a seamless whole.
* Test archiving: A test run may be recorded and replayed later.
* Test isolation: Tests that may crash or otherwise interact badly with each other can be run seperately and then aggregated, rather than interfering with each other.
* Grid testing: subunit can act as the necessary serialisation and deserialiation to get test runs on distributed machines to be reported in real time.
Subunit supplies the following filters:
* tap2subunit - convert perl's TestAnythingProtocol to subunit.
* subunit2pyunit - convert a subunit stream to pyunit test results.
* subunit2gtk - display a subunit stream in a gtk window.
* subunit2junitxml - convert a subunit stream to a JUnit XML representation.
* subunit-filter - filter out tests from a subunit stream.
* subunit-ls - list the tests present in a subunit stream.
* subunit-stats - generate a summary of a subunit stream.
* subunit-tags - add or remove tags from a stream.
What's New in This Release: [ read full changelog ]
· This release of subunit fixes a number of unicode related bugs. This depends on testtools 0.9.4 and will not function without it. Thanks to Tres Seaver there is also an optional native setup.py file for use with easy_install and the like.