CoreJet testrunner based on zope.testrunner
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



This package provides an extension to the test runner to the one that ships
with `zope.testrunner`_.

It is based on (and can be used as a wholesale replacement for),

The test runner is identical to the one in ``zope.testrunner``, except:

* it is capable of writing test reports in the XML format output by JUnit/Ant.
  This allows the test results to be analysed by tools such as the
  Hudson/Jenkins continuous integration server.
* it can output reports in the CoreJet XML format - see `corejet.core`_


In your buildout, add a part like this::

    parts =


    recipe = corejet.recipe.testrunner
    eggs =
    defaults = ['--auto-color', '--auto-progress']

The recipe (`corejet.recipe.testrunner`_) accepts the same options as
`zc.recipe.testrunner`_, so look at its documentation for details.

When buildout is run, you should have a script in ``bin/test`` and a directory

To run the tests, use the ``bin/test`` script. If you pass the ``--xml``
option, test reports will be written to ``parts/test/testreports`` directory::

    $ bin/test --xml -s my.package

If you are using Hudson, you can now configure the build to publish JUnit
test reports for ``<buildoutdir>/parts/test/testreports/*.xml``.

To output a CoreJet report, do::

    $ bin/test --corejet="file,path/to/corejet/file.xml" -s my.package

The CoreJet report and output XML file will be placed in
``parts/test/corejet``. You can combine ``--xml`` and ``--corejet``.

The example above uses the ``file`` CoreJet repository source, which expects
to find a CoreJet XML file at the path specified after the comma.

Repository sources

Other repository sources can be registered via entry points: Packages must
register an entry point under ``corejet.repositorysource`` identifying a
callable that is passed the string *after* the comma with a unique name and
which should return a ``corejet.core.model.RequirementsCatalogue`` object.

Hence, the ``file`` source is defined as::

    def fileSource(path):
        catalogue = RequirementsCatalogue()
        with open(path) as stream:
        return catalogue

and registered with::

    file = corejet.testrunner.filesource:fileSource

Use ``bin/test --help`` for a full list of options.

.. _corejet.recipe.testrunner:
.. _zope.testrunner:
.. _zc.recipe.testrunner:
.. _corejet.core: