Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
Introduction ============ 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), ``collective.xmltestreport``. 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`_ Usage ===== In your buildout, add a part like this:: [buildout] parts = ... test ... [test] recipe = corejet.recipe.testrunner eggs = my.package 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 ``parts/test``. 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: catalogue.populate(stream) return catalogue and registered with:: [corejet.repositorysource] file = corejet.testrunner.filesource:fileSource Use ``bin/test --help`` for a full list of options. .. _corejet.recipe.testrunner: http://pypi.python.org/pypi/corejet.recipe.testrunner .. _zope.testrunner: http://pypi.python.org/pypi/zope.testrunner .. _zc.recipe.testrunner: http://pypi.python.org/pypi/zc.recipe.testrunner .. _corejet.core: http://pypi.python.org/pypi/corejet.core